1.創(chuàng)建倉(cāng)庫(kù)
- 登錄 github首頁(yè)
start a project ,寫上名字,選擇SSH 驗(yàn)證方式即可。
2. 克隆倉(cāng)庫(kù)
使用 git bash,進(jìn)入一個(gè)工作目錄,執(zhí)行命令:
git clone git@github.com:gaoyx/AutoTest.git
這時(shí)候會(huì)報(bào)一個(gè)錯(cuò)誤:
Cloning into 'AutoTest'...
The authenticity of host 'github.com (13.250.177.223)' can't be established.
百度了一下,是因?yàn)樯倭艘粋€(gè)known_hosts文件,本來密鑰文件應(yīng)該是三個(gè),現(xiàn)在是兩個(gè),便報(bào)了這樣的錯(cuò)誤,此時(shí)選擇yes回車之后,便可,同時(shí)生成了缺少了的known_hosts文件。 AutoTest 倉(cāng)庫(kù)也可以成功克隆下來了。
3. push(推送)代碼
- 在倉(cāng)庫(kù)里面新建一個(gè)內(nèi)容:vi qa.txt ,寫入aaa ,保存。
- 查看有哪些改動(dòng)
git status,出現(xiàn)如下:
image.png - 使用
git add qa.txt把文件添加到暫存區(qū)。git add .代表的是添加所有內(nèi)容 - 提交已經(jīng)被add進(jìn)來的改動(dòng).
git commit -m "提交測(cè)試文件" - push到 git倉(cāng)庫(kù):
git push
提交成功后可以在github上看到提交的文件以及說明。
4. pull(拉?。┐a
git pull
5. 創(chuàng)建新的分支
- 首先查看下當(dāng)前分支
git branch: 列出本地所有分支,當(dāng)前分支會(huì)被星號(hào)標(biāo)示出.
git branch -a : 列出所有分支,包括遠(yuǎn)端。 - 創(chuàng)建分支
git checkout -b (branchname): 創(chuàng)建并切換到新的分支. - 提交分支到遠(yuǎn)程
git push此時(shí)會(huì)提示錯(cuò)誤并且有個(gè)建議的命令git push --set-upstream origin branch1執(zhí)行即可成功推送新的分支到遠(yuǎn)程倉(cāng)庫(kù)
5. 刪除分支
- 刪除本地分支
git branch -d "branch的名字"
注意:不能刪除當(dāng)前所在分支,如果刪除,需要先切換到其他分支。 - 刪除遠(yuǎn)程分支
git branch -r -d origin/branch1
這時(shí)候并沒有真正的刪除,需要提交到遠(yuǎn)程倉(cāng)庫(kù)才正式在遠(yuǎn)程刪除。
執(zhí)行如下操作:
git push origin :branch1
6. 合并分支
- 首先新建一個(gè)分支mergedemo,修改原有文件代碼 push到遠(yuǎn)程倉(cāng)庫(kù)
- 切換到 master 分支
現(xiàn)在2個(gè)分支的代碼是不一樣的。 - 執(zhí)行合并
git merge mergedemo
當(dāng)執(zhí)行合并遇到?jīng)_突的時(shí)候,代碼會(huì)有不一致的標(biāo)識(shí),只需要手動(dòng)修改文件,再次提交即可。
7. 版本回退
提交了N次以后,發(fā)現(xiàn)想撤銷原來的提交,返回到前面的1個(gè)步驟
- 回退一次提交 命令:
git reset --hard HEAD^ - 回退二次提交 命令:
git reset --hard HEAD^^
回退幾次提交,就加幾個(gè) ^,也可以用 HEAD~n 代替 - 退回到指定版本
01.執(zhí)行git reflog
可以看到每次的提交以及版本信息:
gaoyx@gaoyx-PC MINGW64 ~/workspace/muke/AutoTest (master)
$ git reflog
d25532b (HEAD -> master, origin/mergedemo, mergedemo) HEAD@{0}: merge mergedemo: Fast-forward
64bef3c (origin/master) HEAD@{1}: checkout: moving from mergedemo to master
d25532b (HEAD -> master, origin/mergedemo, mergedemo) HEAD@{2}: commit: 提交合并的內(nèi)容
64bef3c (origin/master) HEAD@{3}: checkout: moving from master to mergedemo
64bef3c (origin/master) HEAD@{4}: checkout: moving from branch1 to master
8a08cd0 HEAD@{5}: commit: 提交新的內(nèi)容到 branch1
64bef3c (origin/master) HEAD@{6}: checkout: moving from master to branch1
64bef3c (origin/master) HEAD@{7}: commit (initial): 提交測(cè)試文件
gaoyx@gaoyx-PC MINGW64 ~/workspace/muke/AutoTest (master)
02. 執(zhí)行git reset --hard 64bef3c 即是回到 64bef3c 這個(gè)版本。
