git筆記

綱領(lǐng):

其實git的學(xué)習(xí)就是四個區(qū)之間關(guān)系轉(zhuǎn)換的學(xué)習(xí),以及各個區(qū)本身一些操作的學(xué)習(xí)。每個操作都有其特定的作用區(qū)。學(xué)習(xí)時注意區(qū)分,可事半功倍!

注:尤其要注意,git是以修改為單位的。

一、配置

關(guān)鍵命令: "git config"

git config --global user.name "yourName"
git config --global user.email "email@example.com"

二、初始化

關(guān)鍵命令:"git init"

//切換到工作目錄,然后執(zhí)行初始化命令
git init

三、添加文件

關(guān)鍵命令:"git add xx.file"

git add test.txt

四、提交文件

關(guān)鍵命令:"git commit -m "添加了xx.file文件""

git commit -m "添加了test.txt文件"

五、狀態(tài)查看

關(guān)鍵命令:"git status"

git status 

六、查看差異

關(guān)鍵命令:"git diff xx.file"

注:對比的是工作區(qū)與暫存區(qū)

git diff test.txt

七、查看版本歷史

關(guān)鍵命令:"git log" 、"git log --pretty=oneline"

注:查看的都是repo庫的改動

git log

#簡化輸出可用參數(shù)--pretty=oneline
git log --pretty=oneline
#等號兩邊沒有空格

八、回退歷史版本

關(guān)鍵命令:"git reset --hard commit_id"

注:此命令其實就是修改repo庫head指針的指向位置

參數(shù)解釋:

git reset有三個主要參數(shù)

  • --soft -------->只有repo動
  • --mixed ----->repo和stage動(注:默認(rèn)缺省值
  • --hard -------> repo、stage、workspace都動

commit_id主要有兩種表示方式

  • HEAD關(guān)鍵字表示
  • hash值前四位表示
git reset --hard HEAD^
#--hard 表示三個區(qū)域完全回退
#HEAD^表示回退的目的地,^號表示HEAD指針的上一個版本。HEAD^也可用commit id的hash值的前幾位替代,git會自動索引。
git reset --hard 142e


九、回流

關(guān)鍵命令:"git reflog"

注:作用與repo庫

git  reflog 
#用于回流回退過的情況

十、放棄工作區(qū)的修改

關(guān)鍵命令:"git checkout -- xx.file"

注:從暫存去簽出,覆蓋工作區(qū)。

git checkout -- test.txt
# --不能少

十一、刪除暫存區(qū)的內(nèi)容(參考第八條)

關(guān)鍵命令:"git reset HEAD xx.file"

參數(shù)解釋:

  • 默認(rèn)缺省--mixed
  • xx.file在單一文件時可缺省,默認(rèn)整個文件夾同時修改
  • HEAD指向當(dāng)前head指針
    注:本質(zhì)依舊是修改repo庫的head指針,但因為缺省值同時修改了stage,所以效果像是刪除了暫存區(qū)。
git reset HEAD test.txt
#此操作不會影響工作區(qū)

十二、刪除工作區(qū)文件

關(guān)鍵命令:"git rm xx.file"

注:在暫存區(qū)工作,同git add xx.file,所以還需要一步commit

git rm test.txt
#會先執(zhí)行工作區(qū)的文件刪除操作 `rm test.txt`

git commit -m "rm test.txt"

十三、遠(yuǎn)程倉庫

  • ssh-keygen -t rsa -C "youremail@example.com"創(chuàng)建私鑰與公鑰
  • 在github添加公鑰
  • 創(chuàng)建github倉庫 (后續(xù)可直接按github的提示操作即可。)
  • 本地git工作區(qū)運(yùn)行git remote add origin git@github.com:name/repoName.git關(guān)聯(lián)本地repo與遠(yuǎn)程repo
  • 初次推送git push -u origin master
  • 后續(xù)推送git push origin master
  • 注:SSH警告可以忽略,直接yes

十四、克隆項目

關(guān)鍵命令:"git clone"

git clone git@github.com:name/repoName.git
#使用了ssh。也可以使用https。

十五、分支

關(guān)鍵命令:

  • git branch <name> 創(chuàng)建分支
  • git checkout -b <name> 創(chuàng)建并切換分支
  • git checkout <name> 切換分支
  • git branch 查看分支
  • git merge <name> 合并指定分支到當(dāng)前分支
  • git branch -d <name> 刪除指定分支
git branch testDevA
#創(chuàng)建分支A
git checkout -b testDevB
#創(chuàng)建并切換到B分支
git checkout master
#切換到主分支
git branch
#查看分支
git merge testDevA
#將A分支合并到主分支
git merge testDevB
#將B分支合并到主分支
git branch -d testDevA
#刪除A分支
git branch -d testDevB 
#刪除B分支

十六、貯藏棧

注:常用來暫存當(dāng)前工作,去解決臨時問題,之后再恢復(fù)工作。

關(guān)鍵命令:

  • git stash 貯藏入棧
  • git stash pop 出棧并清空棧
  • git stash list 貯藏列表(可多次貯藏,然后查詢,并用下面命令取出)
  • git stash apply 出棧
  • git stash apply stash{0} 指定貯藏出棧
  • git stash drop 清空棧
git stash
#貯藏
git stash pop
#取出

十七、標(biāo)簽

注:默認(rèn)給最新的commit_id打標(biāo)簽,也可指定commit_id。
注2:標(biāo)簽的顯示是按照字母順序的,不是時間順序。
注3:標(biāo)簽?zāi)J(rèn)只存儲在本地,需要而外推送遠(yuǎn)程庫。

關(guān)鍵命令:

  • git tag <tagName> 打標(biāo)簽
  • git tag 查看標(biāo)簽名
  • git tag <tagName> <commit_id> 給特定commit_id打標(biāo)簽
  • git show <tagName> 查看指定標(biāo)簽的詳細(xì)信息
  • git tag -a <tagName> -m <describe> <commit_id> -a指定標(biāo)簽名,-m注釋。
  • git tag -d v1.0 刪除標(biāo)簽
  • git push origin <tagName> 推送特定標(biāo)簽
  • git push origin --tags 推送全部標(biāo)簽
  • git push origin :ref/tags/<tagName> 刪除遠(yuǎn)端標(biāo)簽
git tag v1.0
git tag
git tag v0.3 1e2c
git show v1.0
git tag -a v0.4 -m "this is a test" 3re4 

#commit_id 可省略,默認(rèn)最新commit_id。

十八、git私服搭建

待續(xù)。

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

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

  • Git 是目前最流行的分布式版本控制系統(tǒng)之一。 版本控制指的是,記錄每次版本變更的內(nèi)容和時間等細(xì)節(jié),保留各版本之間...
    神齊閱讀 1,504評論 0 7
  • 分支模型 常駐型分支: master:每個提交都是穩(wěn)定版本,每次提交打tagdevelop:每次提交都是可完整編譯...
    Wavky閱讀 383評論 0 0
  • 對于一個新的包括submodule的項目調(diào)用以下命令即可 或者 配置 首先是配置帳號信息 ssh -T git@g...
    brownfeng閱讀 549評論 0 0
  • 一.Git簡介 Git是世界上最先進(jìn)的分布式版本控制系統(tǒng),相對于SVN這樣的集中式版本控制系統(tǒng),Git不需要“中央...
    ahuustcly閱讀 789評論 0 0
  • 目錄 Git 筆記系列(一)—— Git簡介 Git 筆記系列(二)—— Git工作流程 Git 筆記系列(三)—...
    吃蘑菇De大灰狼閱讀 587評論 0 4

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