日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu 终端/vscode git操作

發布時間:2024/1/1 Ubuntu 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu 终端/vscode git操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?vscode中 ctrl ~ 即可打開終端 操作與直接在終端中打開基本一致 因此下面操作均直接在終端中進行.

?

一 git 操作

該部分內容部分參考自Git遠程操作詳解 - 阮一峰的網絡日志

?1.git clone

這是最簡單的一個操作,從遠程主機克隆一個版本庫.

就用我自己gitee上的一個代碼庫vins-fusion舉例

git clone https://gitee.com/qq408007026/VINS-Fusion.git

這樣就克隆下來了 本地主機會生成一個同名目錄 (我在自己創建的git文件夾下執行的操作)

如果要指定不同目錄名稱則在該命令后加上你想要的名字,即

git clone https://gitee.com/qq408007026/VINS-Fusion.git VINS-Fusion123

2. git remote

為了便于管理,git要求每個遠程主機都必須指定一個主機名,git remote命令用于管理主機名

不帶任何選項時,git remote命令列出所有主機

git remote

?以前面clone的VINS-Fusion為例,在下載的VINS-Fusion文件夾中打開終端輸入命令

?使用-v選項 可以查看遠程主機網址

git remote -v

?克隆版本庫時,所使用的遠程主機自動被命名為origin,如果想在clone的時候更改主機名,則使用git clone -o選項克隆

git clone -o OOOrigin https://gitee.com/qq408007026/VINS-Fusion.git

?此外,還有一些其他指令

git remote show <主機名>

?該指令可以查看該主機詳細信息

git remote add <主機名> <網址>

該指令可以添加遠程主機 這里我把我自己github上的VINS-Fusion庫的遠程主機添加進去

git remote rm <主機名>

該指令可以刪除遠程主機 這里我將上面剛添加的github遠程主機刪除掉

git remote rename <舊名> <新名>

該指令可以更改遠程主機名

?3. git fetch

一旦遠程主機的版本庫有了更新(git屬于叫做commit),如果需要的話,可以將這些更新取回本地,這時候要用到git fetch命令

取回所有分支

git fetch <遠程主機名>

?

?取回特定分支

git fetch <遠程主機名> <分支名>

所取回的更新要通過<遠程主機名>/<分支名>的方式讀取

git branch -r //查看遠程分支

切換英文鍵盤 按q退出?即可這個界面

git branch -a //查看所有分支

?修改本地分支名,可采用以下命令

git branch -m <舊名> <新名>

?取回遠程主機更新之后,可以在它的基礎之上,使用git checkout命令創建一個新的分支.

git checkout -b <新分支> <遠程主機名/遠程分支>

git checkout <分支名>

即可切換到任意分支

刪除分支有兩種操作(刪除之前要記得切換到別的分支,不然會報錯)

git branch -D <本地分支名>

?

未切換到其他分支時報錯

此外可以使用git merge或者git rebase命令,在本地分支上合并遠程分支(其實這兩個命令是有區別的,目前因為我是初學者沒有學明白,日后學明白再仔細解釋)

git merge origin/master 或 git rebase origin/master //在當前分支合并遠程分支

我在我gitee的VINS-Fusion的rosNodeTest.cpp第32行加了一行注釋

//為了git的演示操作添加的注釋

這個在我本地clone時候是沒有的,來模擬一下遠程主機的更新.

執行操作后,可以看到多了一行注釋

?4. git pull

git pull 命令的作用是,取回遠程主機某個分支的更新,再與本地的指定分支合并

git pull <遠程主機名> <遠程分支名>:<本地分支名>當遠程分支與當前分支合并時,冒號及之后內容可省略git pull <遠程主機名> <遠程分支名>大致相當于執行了git fetch 和git merge操作

我又在遠程主機上面同樣注釋處,寫了git pull 演示這幾個字,執行操作后可見本地代碼已更新

?下面追蹤部分總報錯,有時候又不報錯正常追蹤,這里還有待完善!

在某些場合,git會自動在本地分支與遠程分支之間,建立一種追蹤關系(tracking)。比如,在git clone的時候,所有本地分支默認與遠程主機的同名分支,建立追蹤關系,也就是說,本地的master分支自動"追蹤"origin/master分支。

git也可以手動建立追蹤消息

git branch --track <本地分支名> <遠程主機名>/<遠程分支名> 或者 git branch --set-upstream-to=<遠程主機名>/<遠程分支名>

例如我在遠程主機建立一個HUTAO分支,然后在本地創建一個分支hutao追蹤origin/HUTAO分支

?當前分支追蹤到遠程分支好像只需要

git branch --track <遠程主機名>/<遠程分支名>

使用git branch -vv命令查看追蹤情況

git branch -vv

?此外,當前分支與遠程分支存在追蹤關系,git pull可省略遠程分支名,如果當前分支只有一個追蹤分支,可省略遠程主機名,命令變成如下兩條

git pull <遠程主機名> git pull

如果合并需要rebase模式,可以使用以下命令

git pull --rebase <遠程主機名> <遠程分支名>:<本地分支名>

如果遠程主機刪除了某個分支,默認情況下,git pull?不會在拉取遠程分支的時候,刪除對應的本地分支。這是為了防止,由于其他人操作了遠程主機,導致git pull不知不覺刪除了本地分支。

但是,你可以改變這個行為,加上參數?-p?就會在本地刪除遠程已經刪除的分支。

git pull -p 或者 git fetch --prune origin git fetch -p

5. git push

將本地分支的更新,推送到遠程主機

注意分支推送拉取順序是<來源地>:<目的地>

git push <遠程主機名> <本地分支名>:<遠程分支名>

比如我在本地代碼同樣地方的注釋后面再加一句注釋,將其push到遠程主機

?先用git add .將文件添加到暫存區,然后用git commit -m ""添加注釋

?之后提交即可(username為gitee郵箱 下一行是密碼)

?此時,在gitee這邊可以看到注釋增加了

?如果省略遠程分支名,則代表推送到帶有追蹤關系的遠程分支,若該遠程分支不存在,則會被新建出來,例如

git push origin master

上面命令表示,將本地的master分支推送到origin主機的master分支。如果后者不存在,則會被新建。?

如果省略本地分支名,則表示刪除指定的遠程分支,因為這等同于推送一個空的本地分支到遠程分支。

git push origin :master 等于 git push origin --delete master

上面命令用于刪除遠程主機的master分支.

如果當前分支只有一個追蹤分支,那么主機名也可省略,例如

git push

如果當前分支與多個主機存在追蹤關系,則可以使用-u選項指定一個默認主機,這樣后面就可以不加任何參數使用git push,例如

git push -u origin master

上面命令將本地的master分支推送到origin主機,同時指定origin為默認主機,后面就可以不加任何參數使用git push了。?

不帶任何參數的git push,默認只推送當前分支,這叫做simple方式。此外,還有一種matching方式,會推送所有有對應的遠程分支的本地分支。Git 2.0版本之前,默認采用matching方法,現在改為默認采用simple方式。如果要修改這個設置,可以采用git config命令。

還有一種情況,就是不管是否存在對應的遠程分支,將本地的所有分支都推送到遠程主機,這時需要使用--all選項。

git push --all origin

上面命令表示,將所有本地分支都推送到origin主機。

如果遠程主機的版本比本地版本更新,推送時Git會報錯,要求先在本地做git pull合并差異,然后再推送到遠程主機。這時,如果你一定要推送,可以使用--force選項

git push --force origin

上面命令使用--force選項,結果導致遠程主機上更新的版本被覆蓋。除非你很確定要這樣做,否則應該盡量避免使用--force選項。

最后,git push不會推送標簽(tag),除非使用--tags選項。

git push origin --tags

二 其他

1. ssh公鑰

為了能在本地對遠程主機處的代碼進行修改,需要在gitee上添加自己電腦的ssh公鑰,使用以下兩條命令可查看自己的電腦公鑰

cd ~/.ssh cat id_rsa.pub

如果設置過公鑰的話,則會顯示出來一大段數字字母,這個就是公鑰了

?如果沒設置過的話,則通過以下命令設置,一直按ENTER即可

ssh-keygen -t rsa

最后即可得到ssh公鑰,然后去gitee設置個人私鑰,因為只有個人私鑰才能對倉庫進行寫操作

隨便起個標題名字,然后把之前生成的公鑰粘貼進去,?即可.

2. 本地代碼提交到新創建的gitee倉庫

在添加完ssh公鑰之后

在gitee新建一個倉庫,注意根據自身需要選好倉庫是私有還是開源

在終端中打開到自己代碼的目錄下?

首先初始化倉庫

git init

?之后使用git remote系列命令添加遠程主機,并查看.

git remote add origin https://gitee.com/qq408007026/test.git git remote -v

?然后git add .將文件添加到暫存區,會把本地所有untrack的文件都加入暫存區

(此外還有git add *操作,粗糙理解是這個命令會把所有文件都放進去,不管track untrack,目前還沒搞懂,以后再說~~~)

git add .

git commit本地暫存的修改提交到版本庫

git commit -m "first commit"

?效果大致如下

?追蹤一下遠程分支

方法1:(在遠程主機未創建任何分支時可直接這樣追蹤,不過追蹤關系變成遠程追蹤本地分支了,不太清楚和本地追蹤遠程分支有什么區別,宗旨可以push代碼,也可以嘗試第二種方法)

git branch --track origin/master

?方法2:

在gitee處初始化readme文件,這時候就有了一個master帶著兩個readme文件,個人一般習慣刪除掉這兩個readme,之后在本地終端處

git fetch origin git branch --set-upstream-to=<遠程主機名>/<遠程分支名>

即可得到一個本地追蹤遠程的結果(效果圖日后再放)

追蹤成功之后

git push即可,遠程倉庫即有了代碼

總結

以上是生活随笔為你收集整理的Ubuntu 终端/vscode git操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。