1. 程式人生 > >Git pull 小結

Git pull 小結

當git clone之後,直接git pull它會自動匹配一個正確的remote url

是因為在config檔案中配置了以下內容:

1 [branch "master"] 2 remote = origin 3 merge = refs/heads/master

表明:

1.git 處於master這個branch下時,預設的remote就是origin;

2.當在master這個brach下使用指定remote和merge的git pull時,使用預設的remote和merge。

但是對於自己建的專案,並用push到遠端伺服器上,並沒有這塊內容,需要自己配置

如果直接執行git pull,會得到如此結果:

複製程式碼 1 $ git pull 2 Password: 3 You asked me to pull without telling me which branch you 4 want to merge with, and 'branch.master.merge'in 5 your configuration file does not tell me, either. Please 6 specify which branch you want to use on the command line and 7 try again (e.g. 'git pull <repository> <refspec>
'). 8 See git-pull(1) for details. 9 10 If you often merge with the same branch, you may want to 11 use something like the following in your configuration file: 12 13 [branch "master"] 14 remote =<nickname>15 merge =<remote-ref>16 17 [remote "<nickname>"] 18 url
=<url>19 fetch =<refspec>20 21 See git-config(1) for details. 複製程式碼

在參考[2]中,有這樣一段:

Note: at this point your repository is not setup to merge _from_ the remote branch when you type 'git pull'. You can either freshly 'clone' the repository (see "Developer checkout" below), or configure your current repository this way:

1 git remote add -f origin [email protected]:/srv/git/project.git 2 git config branch.master.remote origin 3 git config branch.master.merge refs/heads/master

因此通過git config進行如下配置:

1 $ git config branch.master.remote origin 2 $ git config branch.master.merge refs/heads/master

或者加上--global選項,對於全部專案都使用該配置。

執行完以上 命令,在config檔案中配置了以下內容:

1 [branch "master"] 2 remote = origin 3 merge = refs/heads/master

============================

假如 當前 倉庫有 兩個 分支,master 和 test1,當我們 執行了 以下 兩條命令之後:

git config branch.test1.remote origin

git config branch.test1.merge refs/heads/test1

將在 在config檔案中配置了以下內容:

1 [branch "test1"] 2 remote = origin 3 merge = refs/heads/test1