git命令使用

2021-09-28 11:05:02 字數 3484 閱讀 5406

基礎命令

git init 建立本地倉庫

git add +當前檔名(add . 新增所有檔案) 新增到快取區

git commit -m 「備註」 提交至本地倉庫

git pull 《遠端主機名》 《遠端分支名》:《本地分支名》 取回遠端主機某個分支的更新,再與本地的指定分支合併。

git status 檢視當前狀態(處於什麼狀態,暫存區,本地倉庫)

git log 檢視日誌(版本id,當前分支)

git log --pretty=oneline 簡化檢視日誌

git reflog 檢視所有版本id

git diff head – filename 檢視工作區和版本庫的區別

撤銷修改

1、當你改亂了工作區某個檔案的內容,想直接撤銷工作區修改時,可以使用命令

git checkout – ;

2、不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想撤銷修改,操作如下:

分兩步:① 先 git reset head (或者 git reset) ,②接著使用命令 git checkout – ;

3、 不但改亂了工作區某個檔案的內容,還新增到了暫存區時,並且還提交 git commit 了。

想撤銷本次提交,只能使用命令 git reset --hard commit-id ,直接回退到上乙個版本

前提是沒有推送到遠端庫。

撤銷修改

git restore --worktree filename(or . ) 撤銷工作區修改 (對於修改的未進行add)

git restore --staged . 撤銷暫存區修改 (對於add的未進行commit)

git restore -s head~1 . 將版本回退到當前快照的前乙個版本

git restore -s 91410eb9 . 指定明確的commit id,回退到指定的快照中

git reset --soft head^ 撤銷commit至上一次commit的版本

配置如果要使用ssh協議與遠端倉庫同步,就必須先在本地生成公鑰和私鑰,然後將公鑰新增到遠端的ssh列表

操作

如果已經有本地倉庫,並且想要與遠端倉庫關聯,一般需要兩步:

通過git remote add origin + 遠端倉庫位址 進行關聯

通過git push -u origin master推送本地倉庫修改到遠端倉庫的master分支上

如果沒有本地倉庫,先建立遠端倉庫,然後通過git clone + 遠端倉庫位址 進行轉殖並建立本地倉庫

在本地拉取最新**,使用git pull 命令

分支:遠端先開好分支然後拉到本地

git checkout -b feature-branch origin/feature-branch //檢出遠端的feature-branch分支到本地

本地先開好分支然後推送到遠端

$ git checkout -b feature-branch //建立並切換到分支feature-branch

$ git push origin feature-branch:feature-branch //推送本地的feature-branch(冒號前面的)分支到遠端origin的feature-branch(冒號後面的)分支(沒有會自動建立)

刪除本地分支和刪除遠端分支

git branch -d 分支名 刪除本地分支

git branch -d 分支名 強制刪本地分支

git push origin --delete 分支名 刪除遠端分支

git push

在使用git commit命令將修改從暫存區提交到本地版本庫後,只剩下最後一步將本地版本庫的分支推送到遠端伺服器上對應的分支了,如果不清楚版本庫的構成,可以檢視我的另一篇,git 倉庫的基本結構。

git push的一般形式為 git push 《遠端主機名》 《本地分支名》 《遠端分支名》 ,例如 git push origin master:refs/for/master ,即是將本地的master分支推送到遠端主機origin上的對應master分支, origin 是遠端主機名,

第乙個master是本地分支名,第二個master是遠端分支名。

1.1 git push origin master

如果遠端分支被省略,如上則表示將本地分支推送到與之存在追蹤關係的遠端分支(通常兩者同名),如果該遠端分支不存在,則會被新建

1.2 git push origin :refs/for/master

如果省略本地分支名,則表示刪除指定的遠端分支,因為這等同於推送乙個空的本地分支到遠端分支,等同於 git push origin --delete master

1.3 git push origin

如果當前分支與遠端分支存在追蹤關係,則本地分支和遠端分支都可以省略,將當前分支推送到origin主機的對應分支

1.4 git push

如果當前分支只有乙個遠端分支,那麼主機名都可以省略,形如 git push,可以使用git branch -r ,檢視遠端的分支名

1.5 git push 的其他命令

這幾個常見的用法已足以滿足我們日常開發的使用了,還有幾個擴充套件的用法,如下:

(1) git push -u origin master 如果當前分支與多個主機存在追蹤關係,則可以使用 -u 引數指定乙個預設主機,這樣後面就可以不加任何引數使用git push,

不帶任何引數的git push,預設只推送當前分支,這叫做******方式,還有一種matching方式,會推送所有有對應的遠端分支的本地分支, git 2.0之前預設使用matching,現在改為******方式

如果想更改設定,可以使用git config命令。git config --global push.default matching or git config --global push.default ******;可以使用git config -l 檢視配置

(2) git push --all origin 當遇到這種情況就是不管是否存在對應的遠端分支,將本地的所有分支都推送到遠端主機,這時需要 -all 選項

(3) git push --force origin git push的時候需要本地先git pull更新到跟伺服器版本一致,如果本地版本庫比遠端伺服器上的低,那麼一般會提示你git pull更新,如果一定要提交,那麼可以使用這個命令。

(4) git push origin --tags //git push 的時候不會推送分支,如果一定要推送標籤的話那麼可以使用這個命令

1.6 關於 refs/for

// refs/for 的意義在於我們提交**到伺服器之後是需要經過code review 之後才能進行merge的,而refs/heads 不需要

git命令使用

切換到相應目錄下,git init 把這個目錄變成git可以管理的倉庫,目錄下多了乙個.git的目錄,這個目錄預設是隱藏的,用ls ah命令就可以看見。git status 檢視倉庫狀態。git diff file 檢視修改內容。git add 後面解釋 git commit m 後面解釋 comm...

Git 命令使用

git clone recursive recursive 會遞迴轉殖fast rcnn專案下面的所有git專案 遠端操作的第一步,通常是從遠端主機轉殖乙個版本庫,這時就要用到git clone命令。git clone 版本庫的 比如,轉殖jquery的版本庫。git clone該命令會在本地主機生...

git命令使用

簡單常用命令 git clone url 專案位址 轉殖git上已有專案 提交 到git上一般有以下步驟 1.git pull 更新本地 2.git add 新增本地 3.git commit m 提交你的 並加上注釋 4.git push u origin master 推送 到master分支 ...