Git使用筆記

2021-07-09 01:53:59 字數 1804 閱讀 8341

用了一段時間的tortoisgit,基本能滿足目前的需求。但是當切換到linux的工作環境時,就有點不知所措了,於是又複習了一下git的命令,相對於第一次學習,又有了新的認識。

工作區(working tree):所有有改動的檔案都存在於工作區。

暫存區(index):對於已經存在於工作區的檔案,執行git stage filename後,檔案會儲存到暫存區中。剛新增跟蹤的新檔案也存在於暫存區。

版本庫:執行git commit後會將暫存區中的修改提交到版本庫。

在學習過程中因為沒搞清git add的作用導致擔誤了不少時間,最後發現git 的 add命令本就是乙個不直觀的命令,它有兩個不同的作用:

1. 用於新增跟蹤乙個檔案。

2.用於將工作區的檔案新增到暫存區。

於是git 的後續版本中新增了git stage代替git add的第2個作用,但為了保持和以前的相容,git add還保持著之前的用法,在很多教程中都沒用使用git stage,導致不利於理解。同時還新增了git diff –staged替代git diff –cached。

~ 和 ^ 都代表某提交的上一次提交,~1 == ~^1 == ^。~2代表上上次提交,如果當前提交為多個分支合併而來,則^n(n = 1 ,2 ,3 ,4…)分別代表這些分支上的上一次提交。

一次commit 之後,執行git stage filename添到暫存區之後,再進行一些修改,此時執行git diff,並新增不同的引數,會有以下區別:

1.git diff 顯示當前工作區的檔案和暫存區的差異

2.git diff –staged 顯示暫存區和head的差異

3.git diff head 顯示工作區和head的差異

當希望回退到某個狀態(commit, tag 等)時,使用git reset。有3個選項:

1.–soft將head指向目標commit,並且暫存區和工作區會增加head和目標狀態的差異,也就是說即使使用git reset –soft, commit的結果都是一樣的,只是會刪除某些commit記錄。

2.–mixed(預設)與soft的區別在於,mixed會重置暫存區(將修改放回工作區),並且工作區會增加head和目標狀態的差異。因此,git reset 可以作為git stage的反向操作。

3.–hard回退到某個狀態,重置工作區和暫存區,目標狀態之後的所有更改都會丟失。

git checkout filename(當filename與分支同名時,需要在filename前加–)則是回退到上一次stage時的狀態。

hunk代表乙個diff中一段連續的改動,git stage 就可以通過新增 -p選項以hunk為單位新增到暫存區。該功能可以用來在開發乙個功能時,突然需要修復乙個之前提交中bug,修改完成後新增到暫存區,先提交修復的bug,然後再提交當前實現的功能。

使用git commit -am 」 」 直接提交工作區。

對於你的最近一次提交,你經常想做兩件基本事情:改變提交說明,或者改變你剛剛通過增加,改變,刪除而記錄的快照。

git commit –amend

持續更新

git 使用筆記

git 使用筆記 初始化資訊 git config user.name name git config user.email com git config core.editor vim git init 初始化資訊 從遠端pull git clone git url git pull push 到...

git使用筆記

回滾 git checkout sql 沒有 git add 之前 執行回滾到原始狀態 git reset head sql 執行git add之後,但是沒有 git commit之前 操作,然後在執行 git checkout git remote v 檢視遠端倉庫詳細資訊 git log log...

git 使用筆記

1.初始化本地庫 git init git status 檢視當前目錄狀態 檔案有未提交內容 2.增加檔案到git 本地倉庫快取 git add filename git add txt 新增所有本地目錄與子目錄的萬用字元到txt的檔案 3.git log 檢視提交歷史 4.關聯遠端伺服器倉庫 gi...