下載下傳一個項目和它的整個代碼曆史
git clone [**.git]

比較目前檔案和暫存區檔案差異
git diff
将工作檔案修改送出到本地暫存區
git add -A
git add
顯示有變更的檔案
git status
送出暫存區到倉庫區
git commit -a -m “[comments]”
檢視該檔案每次送出記錄
git log
本地代碼更新(取回遠端倉庫的變化,并與本地分支合并)
git pull origin [branchName]
本地代碼送出(上傳本地指定分支到遠端倉庫)
git push origin [branchName]
建立分支
git checkout -b [newBranchName]
git checkout -b [newBranchName] master 在master分支上建立分支并切換到newBranchName分支上
切換指定分支
git checkout [branchName]
檢視所有分支
git branch -a
git branch 沒有參數,則顯示本地庫中所有本地分支的名稱,目前分支前面會有分号
合并分支
git merge origin [branchName]
git merge –no-ff [branchName]
–no-ff指的是強行關閉fast-forward方式。
fast-forward方式就是當條件允許的時候,git直接把HEAD指針指向合并分支的頭,完成合并。屬于“快進方式”,不過這種情況如果删除分支,則會丢失分支資訊。因為在這個過程中沒有建立commit
git merge –squash 是用來把一些不必要commit進行壓縮,比如說,你的feature在開發的時候寫的commit很亂,那麼我們合并的時候不希望把這些曆史commit帶過來,于是使用–squash進行合并,此時檔案已經同合并後一樣了,但不移動HEAD,不送出。需要進行一次額外的commit來“總結”一下,然後完成最終的合并。
–squash:使用squash方式合并,把多次分支commit曆史壓縮為一次。
git中三種狀态分别為:modified, new file, untracked
下面詳細示範下三種狀态
初始狀态
編輯檔案file1.txt
添加檔案file3.txt
使用git add 将檔案添加到待送出清單
比如master分支在進行合并子分支branchName時,如果采用git merge –no-ff [branchName]的方式,會顯示出沖突的地方,比如:
類似上面這種情況,說明發生了沖突,遇到這種情況不用擔心。這時候需要手動删除。
首選打開編輯沖突的檔案,類似以下這種情形:
介于<<<<<<<(包括======以及>>>>>>都是七個) HEAD和=======的内容是master分支原有的内容:“master file1.txt”。
介于=======和>>>>>>> branchName的内容是branchName原有的内容: “file1 has changed”。
這樣将子分支branchName的内容整合到master的過程中,上述标記的2塊内容會發送沖突,解決辦法就是我們手動編輯去掉沖突,即先編輯沖突,然後使用gitt commit送出。
對于git來說,編輯沖突和平時的修改代碼沒什麼差異。修改完成後,都是要把修改添加到緩存,然後支援commit.
持續更新中…..