創(chuàng)建版本庫
mkdir res-name
cd res-name
git init
查看工作區(qū)狀態(tài)
git status
如果git status告訴你又文件被修改,查看修改內容
git diff file-name
版本穿梭
- HEAD指向的版本是當前版本,HEAD^是上一個 HEAD^^是上兩個
- git reset –hard commit_id
- 使用git log可以查看提交歷史,以便確定要回退到哪個版本
- 如果要重返未來,使用git reflog查看歷史命令,可以找到你想回到的commit_id
工作區(qū)和暫存區(qū)
- 當前的目錄就是工作區(qū)
- git add 把工作區(qū)的內容添加到暫存區(qū)
- git commit 把暫存區(qū)的內容添加的版本庫里面,暫存區(qū)清空。
管理修改
- git add 然后再git commit
- git add path 把path中的內容都添加到暫存區(qū)。
- 通過.gitignore文件來忽略特殊的文件
撤銷修改
- 放棄工作區(qū)的某個文件的修改用git checkout –- file-name
- 把暫存區(qū)的內容放回工作區(qū)git reset HEAD file
- 已經提交到版本庫,版本回退
刪除文件
- 如果你rm了file1,那么你有兩個選擇
- 刪除版本庫中file1,使用git rm file1
- 誤刪了從版本庫中恢復回來,git checkout -– file1
遠程倉庫
- 先創(chuàng)建一個本地的,然后git remote add …
以github為例:
git remote add origin git@github.com:cuihz/learngit.git
其中origin是遠程倉庫在本地的名字。 - git clone
以github為例:
git clone https://github.com/cuihz/learngit.git
clone下來默認的遠程倉庫在本地的名稱就是origin
分支管理
查看分支: git branch
創(chuàng)建分支:git branch branch-name
切換分支:git checkout branch-name
創(chuàng)建+切換分支:git checkout -b branch-name
合并某個分支到當前分支:git merge branch-name
刪除分支:git branch -d branch-name
沖突處理
當執(zhí)行git merge的時候,git會進行快速合并,但是當兩個文件有沖突的時候就無法進行快速合并。注意git merge是把指定的分支中的內容合并到當前這條分支上,對指定分支的內容沒有任何影響。有時在合并的過程中會產生沖突,快速合并無法進行。這時候需要你介入去解決沖突。解決沖突要修改這條分支上的沖突文件,在git標注的地方修改成你想要合并成的樣子。就是把<<<<<<< 和 >>>>>>中的東西刪除,然后改成你要加的。比如你可以把 a abc 和 abc d合并成 a abc d這個也是可以的。修改后git add file 然后git commit file就可以了。處理過的沖突再合并時候可以直接快速合并。
使用普通合并
git merge –no-ff -m "merge with no-ff" dev。
使用普通合并能夠保存分支歷史,可以使用git log去查看。而快速合并是看不出來曾經做過合并的。這個更推薦點吧感覺。
Bug分支
當手頭工作沒有做完并且還不想提交時候,先git stash一下,然后去切到主分支,新建個bug分支修復bug,把bug分支合并到主分支。然后再git stash pop回到工作現場。
feature分支
正常的為軟件添加一個新功能就是建立一個feature分支,然后開發(fā),然后合并到master。但是假如開發(fā)到一半決定取消這個功能了,這時候就需要強行的刪掉這個分支,使用git branch -D branch-name
多人協(xié)作模式
- 首先,可以試圖用git push origin branch-name
- 如果推送失敗,則因為遠程分支比你的本地更新,則需要先用git pull試圖合并。
- 如果合并有沖突,則解決沖突并在本地提交
- 如果沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功
- 常用命令
-如果git pull提示 “no tracking information” 則需要用
git branch –set-upstream branch-nameorigin/branch-name
建立本地分支與遠程分支的關聯。
-查看遠程庫信息,使用git remote -v
-從本地推送分支,使用
git push origin branch-name
如果推送失敗,先用git pull抓取遠程的新提交
-在本地創(chuàng)建和遠程分支對應的分支,使用
git checkout -b branch-name orgin/branch-name
-建立本地分支與遠程分支的關聯,使用
git branch –set-upstream branch-name orgin/branch-name
-從遠程抓取分支,使用git pull,使用git pull,如果有沖突,就先處理沖突。