Git Step by Step – (7) Git遠程倉庫(續)

上一篇文章介紹了Git遠程倉庫的一些使用,可是仍是有些東西須要補充一下,因此有了這個續篇。git

 

.gitignore

前一篇中,咱們介紹了Git的patch功能,當咱們生成patch以後,"git status"就會顯示patch文件是"Untracked files"。固然,咱們也沒有必要去跟蹤這個patch文件。編程

一樣,項目中可能會常常生成一些Git系統不須要追蹤(track)的文件,在編譯生成過程當中 產生的文件或是編程器生成的臨時備份文件。咱們能夠在使用"git add"是避免添加這些文件到暫存區中,可是每次都這麼作會比較麻煩。windows

因此,爲了知足上面的需求,Git系統中有一個忽略特定文件的功能。咱們能夠在工做目錄中添加一個叫".gitignore"的文件,來告訴Git系統要忽略哪些文件。fetch

能夠看到,當咱們使用添加過".gitignore"文件後,文件中的過濾規則就生效了。3d

注意: code

  1. 在windows環境中不支持文件名爲".gitignore",因此能夠把文件命名爲".gitignore."
  2. ".gitignore"文件只會對當前目錄以及全部當前目錄的子目錄生效;也就是說若是咱們把".gitignore"文件移到"advance"文件夾中,那麼過濾規則就是會對"advance"及其子目錄生效了
  3. 建議把".gitignore"文件提交到倉庫裏,這樣其餘的開發人員也能夠共享這套過濾規則

過濾語法

下面介紹一下經常使用的過濾語法:blog

  • 斜槓"/"開頭表示目錄
  • 星號"*"通配多個字符
  • 問號"?"通配單個字符
  • 方括號"[]"包含單個字符的匹配列表
  • 歎號"!"表示不忽略匹配到的文件或目錄

下面舉一些簡單的例子:開發

  • foo/*:忽略目錄 foo下的所有內容
  • *.[oa]:忽略全部.o和.a文件
  • !calc.o:不能忽略calc.o文件

exclude文件

在Git倉庫中有一個".git/info/exclude"文件,當咱們指向對特定的倉庫使用特定的過濾規則時,咱們能夠把過濾語句寫在exclude文件中。rem

 

細看遠程倉庫命令

前面一篇文章簡單的介紹了push、pull命令的使用,這裏將進一步展開介紹。it

首先,咱們看看"git branch"和"git remote"命令,它們能夠給咱們提供不少有用的信息。

  1. git branch

  2. git remote

git push

push命令用來將本地分支的更新推送的遠程倉庫,該命令的格式以下:

git push <遠程主機名> <本地分支名>:<遠程分支名>
  1. 經過"git push"更新、建立遠程分支

  2. 經過"git push"刪除遠程分支

  3. 省略分支信息的"git push origin"

    經過這種方式push的時候,報出了一個警告,提示"push.default"沒有設置。

    在Git中push有兩種設置:

  • simple方式:只是推送當前分支的更新到對應的遠程分支;在Git 2.0之後就默認使用這種方式
  • matching方式:會推送全部有對應的遠程分支的本地分支

根據Git的提示,咱們能夠經過"git config --global push.default"來設置push方式。

git pull

pull命令的做用是取回遠程某個分支的更新,而後合併到指定的本地分支,pull命令格式以下:

git pull <遠程主機名> <遠程分支名>:<本地分支名>
  1. git pull origin release-1.0:release1.0

    取回origin主機release-1.0分支的更新,與本地的release-1.0分支合併。

    通常來講,pull命令都是在關聯的本地分支和遠程分支之間進行;固然,你可使用不關聯的本地分支和遠程分支進行pull操做,可是不建議這麼作。

    若是真的須要別的遠程分支上的更新,建議使用"cherry-pick"把這個更新拿到關聯的遠程分支上,而後在關聯分支上進行pull操做。

  2. 省略本地分支名:git pull origin release-1.0

    表示取回origin/next遠程分支的更新,而後合併到當前分支

  3. 若是當前分支存在上游(關聯)分支,能夠直接使用git pull origin

    表示本地的當前分支自動與關聯的origin主機分支進行合併

"git pull"操做實際上等價於,先執行"git fetch"得到遠程更新,而後"git merge"與本地分支進行合併。

固然,pull命令也支持使用rebase模式進行合併:

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

在這種狀況下,"git pull"就等價於"git fetch"加上"git rebase"。

建議使用"git fetch"加上"git rebase"的方式來取代"git pull"獲取遠程更新,具體緣由後面再介紹。

git fetch

fetch命令比較簡單,做用就是將遠程的更新取回到本地。

  1. git fetch origin

    該命令表示將遠程origin主機的全部分支上的更新取回本地

  2. git fetch origin master

    該命令只取回遠程origin主機上master分支上的更新

     

總結

經過這些介紹,相信你們必定會更加熟悉遠程倉庫操做命令,使得在Git環境中工做的更加順利。

相關文章
相關標籤/搜索