git log -p 文件名 查看提交指定文件提交記錄以及改動(dòng)
每次提交之前建議用 git diff HEAD? 查看當(dāng)前和最新一次提交的差別 這樣做個(gè)對(duì)比,可以對(duì)當(dāng)前的提交做了哪些修改了然于新? ?HEAD 的意思是指向當(dāng)前分支中最新一次提交的指針
git branch 用來查看分支
git checkout -b 分支名? ? ? ?創(chuàng)建切換分支? ? 這個(gè)命令同等于? git branch 分支名 git checkout 分支名
在上游建一個(gè)同樣名字的分支命令為 git push --set-upstream origin 分支名
分支分為主干分支和特性分支
特性分支是集中實(shí)現(xiàn)單一特性的分支浪蹂,主要用來開發(fā)新的功能忆畅,一個(gè)功能對(duì)應(yīng)一個(gè)新的特性分支杯聚,在開發(fā)中往往會(huì)創(chuàng)建數(shù)個(gè)特性分支昨忆,同時(shí)在此之外會(huì)保留一個(gè)隨時(shí)可以發(fā)布軟件的穩(wěn)定分支惶洲,穩(wěn)定分支的角色一般有master分支來?yè)?dān)當(dāng)
主干分支主要用來配置在正式環(huán)境中衬横,以及供人查看裹粤,因?yàn)橹鞲煞种е械拇a都是完善的,基于特定主體的作業(yè)在特性分支中進(jìn)行蜂林,主題完成后再與master分支合并遥诉,只要保證這樣的一個(gè)開發(fā)流程拇泣,就能保證master分支可以隨時(shí)公認(rèn)查看
那么從特性分支怎么合并代碼到主干分支?
git merge? 合并分支
先切換到主干分支矮锈, 輸入命令:
git merge --no-ff 被合并分支名
git reset 回溯歷史版本
由于git log 只能查看以當(dāng)前的狀態(tài)為重點(diǎn)的歷史日志霉翔,所以要使用git reflog 命令來查看當(dāng)前倉(cāng)庫(kù)的操作日志? 在日志中找出回溯歷史之前的哈希值, 然后通過 git reset --hard 命令恢復(fù)到回溯歷史前的狀態(tài)
當(dāng)commit -m 寫的描述不符合預(yù)期的時(shí)候可以使用 git commit? --amend? 命令來對(duì)以及提交的內(nèi)容進(jìn)行編輯愕难,這樣可以是自己的描述更加符合預(yù)期
對(duì)于合并特性分支之前早龟,如果發(fā)現(xiàn)已經(jīng)提交的內(nèi)容中有些許拼寫錯(cuò)誤等,不放提交一個(gè)修改猫缭,然后將這些修改包含到前一個(gè)提交之中葱弟,壓縮成一個(gè)歷史記錄這樣就用到了命令:
git rebase -i 壓縮歷史記錄
當(dāng)兩次commit 時(shí)? 我們不想看到第二次的臟提交 可以用一下命令來完成操作:
git rebase -i HEAD~2
然后進(jìn)入編輯頁(yè)面? :
將第二次提交的 pick 更改為 fixup 即可
添加遠(yuǎn)程分支:
git remote add? 加 遠(yuǎn)程倉(cāng)庫(kù)名? 這樣添加以后 會(huì)自動(dòng)把遠(yuǎn)端的名字標(biāo)識(shí)成origin
然后本地的修改可以推送至遠(yuǎn)程倉(cāng)庫(kù)啦 命令如下
git push -u origin master?
-u 參數(shù)可以在推送的同時(shí),可以將origin倉(cāng)庫(kù)的master分支設(shè)置為本地倉(cāng)庫(kù)當(dāng)前分支的upstream分支猜丹,
推送master以外的分支芝加,
git push -u origin 新分支名??
這樣將遠(yuǎn)程分支將出現(xiàn)一個(gè)和新分支名同名的新分支
獲取遠(yuǎn)程分支:
git checkout -b 新建分支名 origin/遠(yuǎn)程分支
origin/遠(yuǎn)程分支 是獲取來源的分支
在git上是可以使用快捷鍵的
查看快捷鍵的方式為 shift + /
未完待續(xù)====內(nèi)容來自? GitHub 入門與實(shí)踐 本文章只是用來當(dāng)做學(xué)習(xí)筆記
感興趣的小伙伴可以讀一讀這本書,內(nèi)容簡(jiǎn)單易懂 適合初學(xué)者