命令集:
以下是git的一些基本命令。
git init #創建倉庫
git add <file> #添加文件
git add -A # 添加所有改動
git add * # 添加新建文件和修改,但是不包括刪除
git add . # 添加新建文件和修改,但是不包括刪除
git add -u # 添加修改和刪除,但是不包括新建文件
git commit -m '...' #完成添加
git status #隨時掌握工作區的狀態
git diff #查看修改內容
git log #顯示最近到最遠的提交日誌(git --pretty=oneline)
git reset --hard HEAD^ #向上倒退一個版本,^的個數表示退回幾個版本,也可寫成HEAD~x,x表示退回的版本
git reset --hard x #x表示commit的版本號(commit id),可以退回任何版本,能進能退
git reflog #查看命令歷史,找到要退回的commit id
git checkout --file #撤銷工作區的修改
git reset HEAD <file> # 撤銷提交單獨文件,撤銷的是暫緩區status中的版本,將其回退到工作區
遠程庫:
添加遠程庫:
git remote add origin [email protected]:username/rope_name.git
推送到遠程庫:
git push origin master :#把本地master分支的最新修改推送至GitHub
(要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git
關聯後,使用命令git push -u origin master
第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master
推送最新修改;)
克隆遠程庫:
git clone [email protected]:git_username/rope_name.git
要克隆一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令克隆。
Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。
Git鼓勵大量使用分支:
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
修復bug時,我們會通過創建新的bug分支進行修復,然後合併,最後刪除;
當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。
開發一個新feature,最好新建一個分支;
如果要丟棄一個沒有被合併過的分支,可以通過git branch -D 強行刪除。
多人協作的工作模式通常是這樣:
首先,可以試圖用git push origin branch-name推送自己的修改;
如果推送失敗,則因爲遠程分支比你的本地更新,需要先用git pull試圖合併;
如果合併有衝突,則解決衝突,並在本地提交;
沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,則說明本地分支和遠程分支的鏈接關係沒有創建,用命令git branch --set-upstream branch-name origin/branch-name。
這就是多人協作的工作模式,一旦熟悉了,就非常簡單。
配置別名:
git config --global alias.qu "comname" #qu(quicklyname)表示重命名,comname表示被重命名的對象