刪除分支
新建一個分支 A 后,要想把 A 分支刪除掉,只需跳到另一個分支上去,選中 A 分支然后右擊,在彈出的菜單欄中選中 【刪除 A 分支】即可;
在分支下建一個文件夾
左上的然后彈出選框,在【新分支】處建一個 Develop 的文件夾,在 Delvelop 文件夾下新建一個 feature 分支可以在【新分支】的欄目輸入:Develop/feature ,即可;
合並后的恢復
例如:你在當前的 A 分支的 a 節點,但是你鼠標放在 B 分支的一個 b 節點上,在 B 分支的 b 節點上右擊,選中【合並】,會將 B 分支節點上的內容合並到 A 分支上,形成一個在 A 分支上的新節點 c。
當你誤合並時,選中 a,b,c中的任意一個節點,選中導航欄中的【倉庫】->【重置】,即可恢復原樣,像沒發生一樣。
將 xx 重置到這次提交
master分支上有 a->b->c->d->e 5 個節點,現再在 e 節點,鼠標放在 d 節點上,右擊鼠標出現彈框選中【將 master 重置到這次提交】,會出現在 d 提交的基礎上內容 加上現在變化的內容,代碼不會改變。就算你提交到 e 節點,但是鼠標放在 a 節點,右擊鼠標出現彈框選中【將 master 重置到這次提交】,也會將你的分支回到 a 節點上,但是代碼不變。
注意:如果這時你點擊導航欄畝的【倉庫】->【重置】會把你寫的代碼全清除掉,只有你當前提交的部分,慎重啊!
提交回滾
有 "master 分支->1 master 分支->2 master" 分支3個節點,提交后變為 "master 分支->1 master 分支->2 master 分支->3 master分支" 分支 4個節點,選中 "2 master 分支" 節點,將鼠標放在 "3 master" 節點然后右擊選中【提交回滾】,會出現這種警告:
1 HEAD detached at 464855f 2 nothing to commit, working directory clean
意思是:
分離主管464855 f
沒有什么可提交的,工作目錄是干凈的
不會改變。
開始狀態:
所以鼠標選中 ”3 master分支" 節點,然后右擊選中【提交回滾】,代碼會回到 "2 master 分支" 提交的狀態,變為:
也就是 “2 master 分支” 提交代碼的狀態。
然后寫一段與 “3 master分支” 一樣的代碼,再次命名分支名為 “3 master分支”,變為:
代碼rebase(變基)
git rebase用於把一個分支的修改合並到當前分支.
假設你現在在 master 分支上,已有 a, b, c, d, e, f 幾個節點,在 b 節點新建一個分支為 mywork:
1 $ git checkout -b branch
在 branch 分支做兩次提交:
1 $ git add . 2 3 $ git commit -m "1 代碼 branch" 4 5 $ git add . 6 7 $ git commit -m "2 代碼 branch"
如果你想讓"master"分支歷史看起來像沒有經過任何合並一樣,你也許可以用 git rebase,切換到 master:
//這些命令會把你的"branch"分支里的每個提交(commit)取消掉,並且把它們臨時保存為補丁(patch)(這些補丁放到".git/rebase"目錄中),然后把"branch"分支更新 為最新的"master"分支,最后把保存的這些補丁應用到"master"分支上。
1 $ git checkout master 2 3 $ git rebase branch
這時會有沖突,解決沖突后使用:
1 $ git rebase --continue
然后提交,中間會再次出現沖突,再次使用:
1 $ git rebase --continue
就好了!
若中途棄 rebase,可以使用:
$ git rebase --aborkt
另外,我們在使用git pull命令的時候,可以使用--rebase參數,即git pull --rebase,這里表示把你的本地當前分支里的每個提交(commit)取消掉,並且把它們臨時 保存為補丁(patch)(這些補丁放到".git/rebase"目錄中),然后把本地當前分支更新 為最新的"origin"分支,最后把保存的這些補丁應用到本地當前分支上。
參見資料:rebase簡介
多次提交的合並
1.先查看有多少次提交:
$ git log
可以看到下面有4個:
若對 4 個進行提交合並,輸入:
1 $ git rebase -i head~4
然后會彈出一個 vim 編輯界面,會看到編輯界面分為兩部分:
pick xxxx XXXX
pick xxxx XXXX
pick xxxx XXXX
pick xxxx XXXX
# . . . . . . . .
# . . . . . . . .
.
.
.
.
# . . . . . . . .
帶 # 的都是注釋部分,把要合並的改為 【pick】改為 【s】或者 【squash】即可,然后點擊 esc,再輸入 :wq 即可,會跳入另一 vim 編輯界面,修改其中的提交 message,其中第一個提交 message 回作為多次提交合並后的新的提交 message,如:
1 第一個message為:1.0 創建 master,//下面不修改也行 2 3 第2個message為:1 4 5 第3個message為:1 6 7 第4個message為:1 8 9 第5個message為:1
然后,輸入::wq ,退出編輯界面即可,會看到一個叫 【1.0 創建 master】的分支節點,只剩它一個了。
撤銷提交
參見資料:撤銷提交
iOS文件的忽略
如果想忽略某一個文件,可以設置到SourceTree中你提交文件的那個右上角:【設置】->【高級】->【編輯】,然后在里面輸入你想要忽略的文件。
.xcodeproj屬於包文件,它內部的很多東西是不能提交的,包括:project.xcworkspace和xcuserdata,它們是與用戶有關的。
CocosPods 產生的文件: 框架管理工具會生成Podfile、Podfile.lock、Pods文件夾和.xcworkspace四個。其中:
Podfile
外,其它三個文件都不是必須提交的。
"其中
Pods
目錄沒必要提交,里面的文件都是根據
Podfile
描述的依賴庫的配置信息下載和生成的文件。
因為
CocoaPods
支持語義化版本號,所以需要
Podfile.lock
文件記住當前使用的版本,當然這個文件也不是必須。不過提交這個的好處是,可以提醒團隊里面的人,依賴庫版本已經更新”。
忽略文件在SourceTree分為兩種,一種是針對於某一個倉庫,另一種針對於所有的倉庫,最開始沒注意經常提交以后在下載出錯,后來用半天時間終於搞清楚了。
針對某一個倉庫忽略設置
可以在這里設置忽略文件,也可以不設置,看你喜好了!
針對所有倉庫文件設置
第一步:
第二步:
第三步:
這樣就好了,不用針對一個一個倉庫進e行設置!若你喜歡受虐,可以單個倉庫設置,😁!
參考資料:git忽略文件