Sourcetree使用詳解 以及git常用命令大全

一直在努力的人運(yùn)氣不會(huì)太差,加油!??!

SourceTree圖形界面化操作

頂部工具欄
提交:提交改動(dòng)到本地倉庫 ,相當(dāng)于git commit -m '提交的內(nèi)容'
拉?。簭倪h(yuǎn)程拉取最新版本到本地 自動(dòng)合并 ,相當(dāng)于git pull
推送:提交本地的文件/改動(dòng)到遠(yuǎn)程倉庫,相當(dāng)于git push
抓?。簷z測遠(yuǎn)程是否有更新,如果有變動(dòng)會(huì)在拉取右上角出現(xiàn)數(shù)字角標(biāo)。從遠(yuǎn)程獲取最新版本到本地 , 不會(huì)自動(dòng)合并 相當(dāng)于git fetch

拉取/抓取區(qū)別:
pull(拉取)的話,下拉遠(yuǎn)程分支并與本地分支合并。fetch(抓取)只是下拉遠(yuǎn)程分支,沒有合并本地代碼

分支:新建本地分支 ,相當(dāng)于git checkout -b 新分支的名字
合并:合并本地分支,相當(dāng)于git merge 分支的名字
貯藏:當(dāng)我們想要保存某個(gè)狀態(tài)的內(nèi)容,可選擇貯藏;相當(dāng)于git stash

額外補(bǔ)充—— 貯藏使用場景:在實(shí)際開發(fā)中經(jīng)常有這樣的事情發(fā)生,當(dāng)你正在進(jìn)行項(xiàng)目中某一部分的工作,還未完成,只做了一半,而你想轉(zhuǎn)到其他分支上進(jìn)行一些工作。問題是,你不想提交進(jìn)行了一半的工作,否則以后你無法回到這個(gè)工作點(diǎn)。解決這個(gè)問題的辦法就是git stash命令。
“貯藏” 可以獲取你工作目錄的中間狀態(tài)——也就是你修改過的被追蹤的文件和暫存的變更——并將它保存到一個(gè)未完結(jié)變更的堆棧中,隨時(shí)可以重新應(yīng)用。

終端:打開電腦終端,可使用指令操作當(dāng)前倉庫
設(shè)置:可以配置倉庫提交代碼模版,遠(yuǎn)程倉庫地址,遠(yuǎn)程倉庫用戶名,版本控制忽略文件等

頂部工具欄

左側(cè)狀態(tài)欄
WORKSPACE:當(dāng)前本地文件的內(nèi)容/狀態(tài)
分支(branch):本地的分支。前面有空心圈圈的表示當(dāng)前所在分支
標(biāo)簽(tag):可以為不同的分支添加一些標(biāo)簽
遠(yuǎn)端(remote):遠(yuǎn)程倉庫所有的分支

左側(cè)狀態(tài)欄

WORKSPACE - 文件狀態(tài)
當(dāng)選中左側(cè)文件狀態(tài)的時(shí)候,中間會(huì)出現(xiàn)三塊區(qū)域:已暫存文件、未暫存文件、文件內(nèi)容;

分支:管理本地分支,可以進(jìn)行分支的新建/切換/刪除/合并等操作
在分支 左側(cè)有個(gè)圓圈的標(biāo)識(shí)符,代表當(dāng)前工作區(qū)所在的分支
選中某個(gè)分支,右鍵,會(huì)出現(xiàn)如下的選擇列表:

圖片.png

檢出xx:切換當(dāng)前分支到該分支, 相當(dāng)于終端的 git checkout 分支名
合并分支1至分支2:將分支1的更改合并到分支2 相當(dāng)于終端的 git merge 分支名
將當(dāng)前變更變基到 xxx(rebase):就是將該分支未更改前的文件基礎(chǔ)更改到某個(gè)版本
推送到 origin/master(已跟蹤):將本地的變更推送到已跟蹤的遠(yuǎn)程分支 相當(dāng)于終端的 git push master
推送到:選擇要推送到的遠(yuǎn)程分支
跟蹤遠(yuǎn)程分支:選擇要跟蹤的遠(yuǎn)程分支,跟蹤后該本地分支會(huì)和跟蹤的遠(yuǎn)程分支對(duì)比是否有改動(dòng)
與當(dāng)前對(duì)比:選中的分支與當(dāng)前分支的對(duì)比
重命名...:重新命名分支
刪除 xxx:刪除當(dāng)前分支;相當(dāng)于終端的git branch -d 分支名
復(fù)制分支名字:復(fù)制分支名稱
創(chuàng)建拉取請(qǐng)求...:創(chuàng)建并切換分支;相當(dāng)于終端的git checkout -b 分支名


git常用命令大全

創(chuàng)建文件的一些命令
touch a  //創(chuàng)建一個(gè)a文件
touch bb.json // 創(chuàng)建一個(gè)以.json為后綴的文件
mkdir AA //創(chuàng)建AA文件夾
rm 文件名  //刪除文件
pwd //打印當(dāng)前路徑
注意touch和mkdir的區(qū)別
文件信息
ls //查看當(dāng)前路徑下面的所有文件名
ls 文件夾名 // 查看對(duì)應(yīng)文件夾中的內(nèi)容
ls -l // 拉出最近git提交記錄以及對(duì)應(yīng)修改的文件名
ls -l -a // 拉出最近git提交記錄以及對(duì)應(yīng)修改的文件名,隱藏的文件也會(huì)顯示
切換路徑
cd ~ // 將工作路徑快速切換到root
cd - // 將工作路徑切換到上一狀態(tài)
cd ../ // 切回到上一個(gè)工作路徑和 cd.. 一致
cd 文件夾名 // 進(jìn)入某個(gè)目錄
cd / // 進(jìn)入根目錄
vim模式
vim 文件名 // 新建一個(gè)文件
i 插入內(nèi)容
按下esc :wq 再按return(保存并退出)
按下esc :q 再按return(直接退出)
vim 模式下 文件中#號(hào)開頭的為注釋
git賬號(hào)信息配置
//給當(dāng)前的git倉庫配置用戶名和郵箱
git config user.name "flowerlflower"
git config user.email  "799431668@qq.com"
//給git配置全局的用戶名和郵箱
git config —global user.name "flowerlflower"
git config —global user.email  "799431668@qq.com"

常用git 命令

git init  // 初始化一個(gè)代碼倉庫
git clone url地址 //將遠(yuǎn)程的版本下載到本地
git clone -b 分支名 地址 // 克隆分支的代碼到本地
git status  //查看文件狀態(tài)  紅色:該文件被添加或者被修改,但是沒有添加到git的暫緩區(qū)
git add 文件名 //將某個(gè)文件存入暫存區(qū)
git add xx.h xx.m  //將xx.h 和xx.m添加到暫緩區(qū)
git add . //將在工作區(qū)所有不在暫緩區(qū)的所有內(nèi)容添加到暫緩區(qū)
git stash -u -k // 提交部分文件內(nèi)容 到倉庫 例如本地有3個(gè)文件 a b c 只想提交a b到遠(yuǎn)程倉庫 git add a b 然后 git stash -u -k 再然后git commit -m "備注信息" 然后再push push之后 git stash pop 把之前放入堆棧的c拿出來 繼續(xù)下一波操作
git commit -m "提交的內(nèi)容"  //將在暫緩區(qū)的所有內(nèi)容提交到本地版本庫,清空暫緩區(qū) (即提交代碼到倉庫)
git checkout .  //撤銷,放棄所有的本地文件修改
git log --oneline //拉出所有提交信息 單行顯示
git branch //查看當(dāng)前使用分支(結(jié)果列表中前面標(biāo)*號(hào)的表示當(dāng)前使用分支)
git branch -a //查看遠(yuǎn)程分支(列出遠(yuǎn)程分支以及本地分支名)
git branch -r  //列出遠(yuǎn)程分支(遠(yuǎn)程所有分支名)
git branch 分支名 //新建分支
git checkout -b 分支名 //創(chuàng)建并切換分支
git checkout -b test c6f68a8 在提交記錄(c6f68a8)上創(chuàng)建一個(gè)名為test的分支 
git checkout 分支名  //切換分支 或 檢出分支
git push // 將本地分支推送到遠(yuǎn)程 (一般直接push)
git push  origin 分支名 // 將本地分支推送到遠(yuǎn)程

分支操作

git branch //查看當(dāng)前使用分支(結(jié)果列表中前面標(biāo)*號(hào)的表示當(dāng)前使用分支)
git branch 分支名 //新建分支
//例如 git branch dev1.0 如果本地沒有就創(chuàng)建/獲取 如果
git checkout -b 分支名 //創(chuàng)建并切換分支
git checkout 分支名  //切換分支 或 檢出分支
git branch -v // 查看分支以及提交hash值和commit信息
git merge 分支名 // 把該分支的內(nèi)容合并到現(xiàn)有分支上
git branch -d 分支名 //刪除分支
git branch -D 分支名 // 強(qiáng)制刪除 若沒有其他分支合并就刪除 d會(huì)提示 D不會(huì) 
//例如 git branch -D dev1.0
git branch -m 舊分支名 新分支名 // 修改分支名
git branch -M 舊分支名 新分支名 // 修改分支名 M強(qiáng)制修改 若與其他分支有沖突也會(huì)創(chuàng)建(慎用)
git branch -r // 列出遠(yuǎn)程分支(遠(yuǎn)程所有分支名)
git branch -a //查看遠(yuǎn)程分支(列出遠(yuǎn)程分支以及本地分支名)
git push  origin 分支名 // 將本地分支推送到遠(yuǎn)程

額外普及

1、遠(yuǎn)程沒有分支,本地也沒有分支

git checkout -b test  //創(chuàng)建并切換到新分支
git push --set-upstream origin test  //推送到遠(yuǎn)程分支,并且跟蹤遠(yuǎn)程分支

2、遠(yuǎn)程已經(jīng)存在分支,本地不存在對(duì)應(yīng)分支

git checkout --track origin/dev1.0
或者git checkout -b newdev origin/dev1.0(該命令可以設(shè)置不同的分支名,不過非常建議本地分支名和遠(yuǎn)程分支名一樣。)

3、設(shè)置一個(gè)已有的本地分支跟蹤一個(gè)剛剛拉取下來的遠(yuǎn)程分支:

git branch -u origin/test 或者 git branch --set-upstream-to=origin/test

4、刪除本地跟蹤的遠(yuǎn)程分支(不常用)

git branch -r -d origin/branchname

5、刪除git倉庫上的遠(yuǎn)程分支

 git push origin --delete branchname

回退操作

git reflog //可以查看所有版本回退的操作
git reset --hard HEAD //回到當(dāng)前版本
git reset --hard HEAD^  //回到上一個(gè)版本
git reset --hard HEAD^^  //回到上上個(gè)版本
git reset --hard HEAD~10 //回到前10個(gè)版本
git reset -- hard 版本號(hào)(前5位) //回到固定版本號(hào)  (reset常用操作)例如:git reset --hard 149a6c5
git reset --files // 從倉庫回撤到暫存區(qū)

查看信息

git show HEAD // 查看最后一次提交修改的詳細(xì)信息 也可以用git show 哈希值 查看對(duì)應(yīng)的內(nèi)容
git show HEAD^ // 查看倒數(shù)第二次的提交修改詳細(xì)信息
git log --oneline //拉出所有提交信息 單行顯示
git log -5 //查看前5次提交記錄
git log  //查看版本信息

標(biāo)簽操作

git tag //查看列出所有打過的標(biāo)簽名
git tag -d 標(biāo)簽名 // 刪除對(duì)應(yīng)標(biāo)簽
git tag 標(biāo)簽名字 // 在當(dāng)前倉庫打個(gè)標(biāo)簽
git tag foo -m "message" // 在當(dāng)前提交上,打標(biāo)簽foo 并給message信息注釋
git tag 標(biāo)簽名 哈希值 -m "message" // 在某個(gè)哈希值上打標(biāo)簽并且寫上標(biāo)簽的信息
git tag foo HEAD~4 // 在當(dāng)前提交之前的第4個(gè)版本上 打標(biāo)簽foo

推送、拉取

git push origin :refs/tags/遠(yuǎn)程標(biāo)簽名 // 刪除遠(yuǎn)程倉庫的標(biāo)簽
git push origin --tags // 把所有打好的標(biāo)簽推送到遠(yuǎn)程倉庫
git push origin 標(biāo)簽名 // 把指定標(biāo)簽推送到遠(yuǎn)程倉庫
git pull --tags // 把遠(yuǎn)程倉庫的標(biāo)簽也拉取下來

貯藏:

git stash // 把暫存區(qū)的內(nèi)容 暫時(shí)放在其他中 使暫存區(qū)變空
git stash list // 查看stash了哪些存儲(chǔ)
git stash pop // 將stash中的內(nèi)容恢復(fù)到當(dāng)前目錄,將緩存堆棧中的對(duì)應(yīng)stash刪除
git stash apply // 將stash中的內(nèi)容恢復(fù)到當(dāng)前目錄,不會(huì)將緩存堆棧中的對(duì)應(yīng)stash刪除
git stash clear // 刪除所有緩存的stash

刪除忽悠文件

touch.gitignore ->Github->搜索“.gitignore” ->選擇最多星星的->找到Object-C,復(fù)制下來

解決沖突:
同一文件修改沖突,需要手動(dòng)解決沖突后再提交。git status可查看沖突,根據(jù)標(biāo)記可修改沖突部分,修改結(jié)束后再重新提交。

git pull         //拉取遠(yuǎn)程內(nèi)容
git log --graph        //命令可以看到分支合并圖。

示例: *將本地代碼推送到github
1、去github上創(chuàng)建自己的Repository,創(chuàng)建頁面如下圖所示

圖片.png

2、將鏈接復(fù)制
圖片.png

2、進(jìn)入終端

cd 項(xiàng)目路徑
git init
git add .
 git commit -m "Flutter初體驗(yàn)"
圖片.png

將本地的倉庫關(guān)聯(lián)到github上

git remote add origin https://github.com/YYDreams/flutter_helloworld

將本地分支推送到遠(yuǎn)程

git push origin master

再次刷新剛剛創(chuàng)建的github鏈接即可,完畢

文章接近尾聲,額外補(bǔ)充——>Git恢復(fù)之前版本的兩種方法reset、revert(圖文詳解)
有必要了解一下,筆者遇到過一次這種情況。事情經(jīng)過大概:筆者兩天遇到了這么個(gè)問題,將dev分支合到自己的分支之后,如果有沖突就解決沖突,由于閑打印太多,就將AppDelegate中的打印方法注釋了,之后老大就會(huì)將你這個(gè)分支合進(jìn)dev里面去,我們不能直接將代碼合進(jìn)dev里面,只能老大去合,合進(jìn)去老大發(fā)現(xiàn)不對(duì),直接還原(Revert)操作,然后我這個(gè)分支的代碼就在dev上消失了,之后再從最后一次提交的記錄,從這個(gè)節(jié)點(diǎn)拉個(gè)分支 然后把主干的代碼合到這個(gè)分支 然后把這個(gè)分支合到主干,你會(huì)發(fā)現(xiàn)你的代碼怎么合都合不進(jìn)去了。理由:(因?yàn)檫@個(gè)分支之前的 已經(jīng)被合過主干了),人家合你這個(gè)分支的東西也合不到東西。此時(shí)直接revert就好了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 查看、添加、提交、刪除、找回,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,216評(píng)論 0 2
  • Add & Commit git init 初始化一個(gè) Git 倉庫(repository),即把當(dāng)前所在目錄變成...
    冬絮閱讀 5,157評(píng)論 0 9
  • 一:Git是什么? Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。 二:SVN與Git的最主要的區(qū)別? SVN是集...
    Splendid飛羽閱讀 359評(píng)論 0 0
  • 四、 分支開發(fā)工作流 現(xiàn)在你已經(jīng)學(xué)會(huì)新建和合并分支,那么你可以或者應(yīng)該用它來做些什么呢? 在本節(jié),我們會(huì)介紹一些常...
    常大鵬閱讀 2,266評(píng)論 3 24
  • 三大區(qū)域: 工作區(qū) → 緩存區(qū) → 本地倉庫 一 、 使用 git config 命令進(jìn)行配置: git ...
    Manchangdx閱讀 2,956評(píng)論 0 2

友情鏈接更多精彩內(nèi)容