常用git 命令備忘

2021-10-19 07:37:31 字數 2617 閱讀 3169

git add . //新增所有檔案

git commit -m "本功能全部完成"

git reset --soft head^   // 僅僅是撤回commit操作,寫的**仍然保留   head^的意思是上乙個版本,也可以寫成head~1,  如果你進行了2次commit,想都撤回,可以使用head~2

--mixed       意思是:不刪除工作空間改動**,撤銷commit,並且撤銷git add . 操作   這個為預設引數,git reset --mixed head^ 和 git reset head^ 效果是一樣的。

--soft  不刪除工作空間改動**,撤銷commit,不撤銷git add . 

--hard 刪除工作空間改動**,撤銷commit,撤銷git add .      注意完成這個操作後,就恢復到了上一次的commit狀態。

git commit --amend   //   如果commit注釋寫錯了,只是想改一下注釋。  此時會進入預設vim編輯器,修改注釋完畢後儲存就好了。

我現在在dev20181018分支上,想刪除dev20181018分支

1 先切換到別的分支: git checkout dev20180927

2 刪除本地分支: git branch -d dev20181018

3 如果刪除不了可以強制刪除,git branch -d dev20181018

4 有必要的情況下,刪除遠端分支(慎用):git push origin --delete dev20181018

5 在從公用的倉庫fetch**:git fetch origin dev20181018:dev20181018

6 然後切換分支即可:git checkout dev20181018

注:上述操作是刪除個人本地和個人遠端分支,如果只刪除個人本地,請忽略第4步

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

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

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

3.1git push origin master

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

3.2git push origin :refs/for/master

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

3.3git push origin

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

3.4 git push

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

3.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 的時候不會推送分支,如果一定要推送標籤的話那麼可以使用這個命令

3.6 關於 refs/for

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

參考部落格   

Git常用命令備忘

git config global user.name vito zhou git config global user.email zhouwentao16 gmail.com git config global color.ui true git config global alias.co c...

Git常用命令備忘

git config global user.name robbin git config global user.email fankai gmail.com git config global color.ui true git config global alias.co checkout g...

Git常用命令備忘

git config global user.name robbin git config global user.email fankai gmail.com git config global color.ui true git config global alias.co checkout g...