git&&sourceTree操作學習
基本操作
- commit 提交
- pull 更新代碼
- push 推送代碼
- fetch 抓取代碼
- Branch 新建分支
- merge 合併代碼
- Stash 暫存代碼狀態
- log 輸出歷史提交
- reset --hard 回退版本
- reflog 輸出git命令的歷史
git add 文件名
- 把文件添加到倉庫
git commit -m "説明",提交本次修改
git status 用於查看工作區狀態
git diff ,用於查看被更改的文件修改前後的區別
git log ,命令可以查看提交歷史
git log --pretty=oneline ,在一行內打印log
git reset --hard HEAD^,回退到上一個版本
- 回退一個版本 HEAD/兩個版本HEAD^/指定版本HEAD~n
- --hard 版本號,可以用於到達任意版本
- 注:~n與^為尋根操作
git reflog ,用於輸出git的歷史命令
- 通過歷史命令可以防止因關閉命令行導致忘記git版本號
工作區和暫存區
- 工作區
電腦裏能夠看到的目錄一般指工作區,.git文件夾不算,它是git的版本庫 - Git版本庫(.git一般為隱藏文件夾)
- stage(或者叫index)的暫存區
- master分支,以及指向master的一個HEAD指針(git版本回退就是根據HEAD指針操作)
- 工作區-->add操作-->stage暫存區-->commit操作-->(當前)master版本庫
- git管理的文件修改後/新增文件後都需要先將文件添加到暫存區,然後將暫存區的文件commit提交到當前分支
- Changes not staged for commit
表示git中的文件被改變了 - unTracked files
新建的文件,未被追蹤
管理修改
- 為什麼git比其他版本管理工具優秀?
- git管理並跟蹤的是修改,而非文件
- 撤銷修改
- 撤銷工作區的修改
- git checkout -- 文件名,可以放棄工作區的修改,如果暫存區有內容則跟暫存區的內容相同,暫存區為空則跟版本庫中的當前分支相同
- 撤銷暫存區的修改
- git reset head 撤銷暫存區的修改再撤銷工作區的修改
分支修改
- git checkout -b dev
- 創建新的名為dev的分支,相當於,git branch dev+git checkout dev,
- Git branch可以創建新的分支,git checkout可以切換分支
- git branch
- 可以查看分支的情況,當前分支前面會有一個*號
- git merge dev
- merge用於分支合併,可以將後續分支合併到當前分支,一般用的是fast_forward,直接把master指向當前dev的提交,快速合併
- git branch -d dev
- 刪除dev分支
- git switch -c dev
- 也可以用於創建分支並切換
- git switch 用於切換分支,作用和git checkout一樣
SourceTree常見操作
1. 在SourceTree中追蹤分支
- 用於聯繫本地分支和遠程分支,如果在追蹤分支上進行pull和push操作,它會自動拉取或者推送到相關聯的遠程分支上
2. 在SourceTree中放棄更改
- 放棄工作區的更改
- 當對原文件進行修改後,可以在工作區(workspace)選中修改過的文件,右鍵重置,即可放棄更改,恢復到和本地master分支相同的狀態
- 也可以右擊重置到提交,可以選擇重置到提交,使被更改的文件重置到某個提交的版本
- 注意:在SourceTree裏面的
- 修改git分支的名稱
- git branch -m oldName newName
3.在SourceTree中合併分支
- 根據日誌合併
- 選中某個提交->選中立即提交合並(如果沒有衝突的情況下)->確定,如果有衝突則解決衝突,沒有衝突則合併完成
- 合併已抓取
- 合併某個已經被抓取到分支的全部內容,用於較多內容的合併
4.解決合併衝突
- 打開外部合併工具
- 使用我的內容解決衝突
- 使用他的內容解決衝突
5.分支的回退
- 命令行下直接使用 git reset --hard commit版本號
- SourceTree模式下,右擊某個提交->將分支重置到這次提交
- 軟合併
- 混合合併
- 強行合併
- 一般使用軟合併與混合合併,強行合併的話會導致本地的修改全部被丟失
6.git cherry-pick解決“超前m個版本,落後n個版本”的情況
- 首先使用git log 查看commit記錄,將超前m個版本的commit號記錄下來
- 使用git reset --hard HEAD~m,將git回退到m個版本之前
- 拉取最新的n個版本
- 執行 git cherry-pick commit[0]..commit[m],將超前的m個版本合併到當前最新版本中,(commit[ ]代表的是commit版本號)
7.基礎-將本地repository與遠程repository關聯
- (本地repository如果生成git文件可跳過這步)
進入本地文件目錄,執行 git init - 添加遠程主機
git remote add origin https://..... - (本地repository如果已commit可跳過這步)
git add .
git commit -m "initial commit" - 將本地內容上傳到remote
git push -u origin master #-u是指定origin為默認主機 master是本地分支名稱
8.將分支改名
- 本地分支改名
git branch -m Nowname NewName
9.創建新分支並關聯遠程分支
- git checkout -b newBranch
- git push origin newBranch
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。