Android專案中Git的使用
Android專案中Git的使用
- git專案
- git分支管理
- git遠端分支
git狀態圖
git專案
獲取途徑:自己新建專案和GitLab上已有的專案
一、自己新建的專案
初始化git倉庫
git init
新增跟蹤檔案或新增修改檔案
git add file1,file2…
提交到本地git倉庫
git commit -m “comment”
提交到遠端倉庫。
本地Git倉庫新增遠端GitLab倉庫
git remote add [shortname] [url]
推送專案到遠端倉庫:
git push -u [remote-name] [branchname]
二、克隆GitLab上已有專案
git clone url [project]
刪除檔案,同時在目錄中刪去該檔案, 移除檔案時,下一次提交時檔案就不再納入版本管理了。
git rm fileName
刪除檔案,同時在目錄中刪去該檔案,但已經在暫存區
git rm -f fileName
不想讓Git繼續跟蹤某個檔案,但保留在工作目錄
git rm –cached fileName
從暫存區取消暫存
git reset HEAD fileName
還原已更改的檔案
git checkout – fileName
分支管理
新建分支
git branch [branch name]
切換分支
git checkout [branch name]
新建分支同時切換到該分支
git checkout –b [branch name]
檢視當前分支
git branch
合併分支:如在master中合併test分支
git checkout master
git merge test檢視各分支的最後一次提交:
git branch –v
合併某個分支後,可以刪除該分支:
git branch –d [branch name]
若該分支還沒合併,但仍然要刪除它
git branch –D [branch name]
檢視已經和當前分支合併的分支
git branch –merge
檢視已經和當前分支尚未合併的分支
git branch –no–merge
Git遠端分支
遠端跟蹤分支是遠端分支狀態的引用。 它們是你不能移動的本地引用,當你做任何網路通訊操作時,它們會自動移動。 遠端跟蹤分支像是你上次連線到遠端倉庫時,那些分支所處狀態的書籤。
獲得遠端分支的完整列表:
git ls-remoe [remote name]
獲取遠端分支引用的更多訊息:
git remote show [remote name]
推送分支
推送新的本地分支到遠端倉庫
git push [remote name] [local branch name]
若想推送新的本地分支到遠端倉庫,但想修改遠端倉庫分支名:
git push [remote name][local branch name]:[remote branch name]
拉取伺服器新的分支
如某個合作者上傳了某個分支:git push origin test:test
當其他協作者從伺服器上抓取資料時,他們會在本地生成一個遠端分支 origin/ test,指向伺服器的 test分支的引用。特別注意的一點是當抓取到新的遠端跟蹤分支時,本地不會自動生成一份可編輯的副本。 換一句話說,這種情況下,不會有一個新的test 分支 - 只有一個不可以修改的 origin/test指標。
git fetch origin
可以合併這個分支到當前分支:
git merge origin/test
git checkout –b test origin/test
跟蹤分支
從一個遠端跟蹤分支檢出一個本地分支會自動建立一個叫做 “跟蹤分支”(有時候也叫做 “上游分支”)。跟蹤分支是與遠端分支有直接關係的本地分支。 如果在一個跟蹤分支上輸入gitpull,Git能自動地識別去哪個伺服器上抓取、合併到哪個分支。
* 跟蹤某個分支:
git checkout –b [new brand name] [remote name]/[branch name]
若直接新建一個分支並跟蹤該遠端分支,本地分支名將和遠端分支名相同
git checkout –track [remote name]/[branch name]
設定已有的本地分支跟蹤一個剛剛拉取下來的遠端分支,或者想要修改正在跟蹤的上游分支,你可以在任意時間使用-u或–set-upstream-to選項執行gitbranch來顯式地設定。
git branch –u [remote name]/[branch name]
如果想要檢視設定的所有跟蹤分支,可以使用git branch的-vv選項
git branch –vv
拉取
- git fetch [remote name]
從伺服器上抓取本地沒有的資料時,它並不會修改工作目錄中的內容。 它只會獲取資料然後讓你自己合併。 - git pull
在大多數情況下它的含義是一個git fetch緊接著一個git merge命令。git pull會查詢當前分支所跟蹤的伺服器與分支,從伺服器上抓取資料然後嘗試合併入那個遠端分支。
刪除遠端分支
git push [remote name] --delete brandname
假設你已經通過遠端分支做完所有的工作了 -也就是說你和你的協作者已經完成了一個特性並且將其合併到了遠端倉庫的master分支(或任何其他穩定程式碼分支)。可以執行帶有–delete選項的git push命令來刪除一個遠端分支。