天天看點

Git學習筆記Git配置指令初始化Git倉庫添加檔案到Git倉庫送出檔案到Git倉庫掌握工作區的狀态檢視修改内容檢視日志資訊版本回退檢視指令曆史暫存區的概念撤銷修改删除檔案遠端倉庫推送至遠端庫倉庫克隆建立分支檢視目前分支合并分支删除分支檢視分支合并圖Fast-forward模式儲藏強制删除分支檢視遠端庫資訊推送分支建立分支并關聯将本地分支與遠端分支相關聯變基标簽建立标簽檢視标簽删除标簽推送标簽删除遠端标簽忽略特殊檔案配置别名

Git學習筆記

  • Git配置指令
  • 初始化Git倉庫
  • 添加檔案到Git倉庫
  • 送出檔案到Git倉庫
  • 掌握工作區的狀态
  • 檢視修改内容
  • 檢視日志資訊
  • 版本回退
  • 檢視指令曆史
  • 暫存區的概念
  • 撤銷修改
  • 删除檔案
  • 遠端倉庫
  • 推送至遠端庫
  • 倉庫克隆
  • 建立分支
  • 檢視目前分支
  • 合并分支
  • 删除分支
  • 檢視分支合并圖
  • Fast-forward模式
  • 儲藏
  • 強制删除分支
  • 檢視遠端庫資訊
  • 推送分支
  • 建立分支并關聯
  • 将本地分支與遠端分支相關聯
  • 變基
  • 标簽
  • 建立标簽
  • 檢視标簽
  • 删除标簽
  • 推送标簽
  • 删除遠端标簽
  • 忽略特殊檔案
  • 配置别名

Git配置指令

git config --global user.name "Your Name"
git config --global user.email "[email protected]"
           

設定全局的名稱和Email位址。

初始化Git倉庫

git init
           

初始化一個Git倉庫。

添加檔案到Git倉庫

git add <file>
           

将檔案添加到Git倉庫,可重複執行,并且也可以直接将

<file>

替換成

.

來将所有修改檔案添加到Git倉庫。

送出檔案到Git倉庫

git commit -m <message>
           

送出已添加的檔案,其中

<message>

為送出日志資訊。

掌握工作區的狀态

git status
           

檢視倉庫目前的狀态。

檢視修改内容

git diff
           

檢視檔案的修改内容。

檢視日志資訊

git log --pretty=oneline
           

檢視送出日志記錄。

版本回退

git reset --hard HEAD^
           

回退到上一個版本。其中

HEAD

代表目前版本,

HEAD^

代表上一個版本,

HEAD^^

代表上兩個版本,

HEAD~100

代表上100個版本。

git reset --hard commit_id
           

回退到指定送出id所對應的版本,其中

commit_id

不需要寫全。

檢視指令曆史

git reflog
           

檢視你執行過的每一次指令

暫存區的概念

通過

git add

指令将檔案放入暫存區,通過

git commit -m "xxx"

把檔案放入目前分支,此時暫存區就沒東西了。

一般的工作過程都是如此,工作區→暫存區→目前分支。

撤銷修改

git checkout -- <file>
           

撤銷工作區的修改。總之就是讓檔案回到上一次

commit

或者

add

時的狀态。

git reset HEAD <file>
           

撤銷暫存區的修改。

删除檔案

git rm <file>
           

将版本庫中的檔案删除。如果先将工作區的檔案手動删除了,那麼和

add

指令一緻。

遠端倉庫

ssh-keygen -t rsa -C "[email protected]"
           

建立自己的SSH key,一般存在于使用者主目錄的

.ssh

檔案夾中,裡面有

id_rsa

id_rsa.pub

兩個檔案,這兩個就是SSH Key的秘鑰對,

id_rsa

是私鑰,不能洩露出去,

id_rsa.pub

是公鑰,可以放心地告訴任何人。

建立完自己的SSH key之後,就可以在GitHub、碼雲之類的遠端倉庫平台上添加上你的公鑰,然後你就可以在該機器上進行推送了。

git remote add origin [email protected]:lxr17/learngit.git
           

将本地倉庫與遠端倉庫相關聯,其中

origin

為遠端倉庫的名字,也可以改成其他名字。

推送至遠端庫

git push -u origin master
           

把本地庫

master

分支的内容推送到遠端庫

origin

-u

指令會把本地

master

分支和

origin

遠端倉庫的

master

分支關聯起來,之後可以簡化指令。

git push origin master
           

把本地庫

master

分支的内容推送到遠端庫

origin

master

分支上。

倉庫克隆

git clone [email protected]:lxr17/learngit.git
           

從遠端克隆一個倉庫到本地。

建立分支

git checkout -b dev
           

建立一條

dev

分支并切換到

dev

分支上,其中

-b

表示建立并切換。

git branch dev
           

建立一條

dev

分支。

git checkout dev
           

切換到

dev

分支上。

檢視目前分支

git branch
           

檢視目前分支。

合并分支

git merge dev
           

dev

分支合并到目前分支上。

Fast-forward

的意思是表示此次合并為“快進模式”,也就是直接把

master

分支指向

dev

的目前送出,是以合并速度非常快。

當git無法自動合并分支時,就必須首先解決沖突。解決沖突後,再送出,合并完成。

解決沖突就是把git合并失敗的檔案手動編輯為我們希望的内容,再送出。

删除分支

git branch -d dev
           

删除

dev

分支。

檢視分支合并圖

git log --graph
           

Fast-forward模式

Fast forward

模式在删除分之後會丢掉分支資訊。如果要強制禁用

Fast-forward

模式,Git就會在

merge

時生成一個新的

commit

,這樣,從分支曆史上就可以看出分支資訊。

git merge --no-ff -m "message" dev
           

禁用

Fast forward

模式下的合并分支,将

dev

分支合并到目前分支,由于會建立一次新的

commit

,是以要加上

-m

參數。

合并分支時,加上

--no-ff

參數就可以用普通模式合并,合并後的曆史有分支,能看出來曾經做過合并,而

Fast forward

合并就看不出來曾經做過合并。

儲藏

git stash
           

可以把目前工作現場“儲藏”起來,等以後恢複現場後繼續工作。

git stash list
           

可以擷取到“儲藏”的工作現場。

git stash apply
           

用于恢複工作現場。

git stash drop
           

用于删除stash内容。

git stash pop
           

用于恢複工作現場的同時删除stash内容。

git stash apply [email protected]{0}
           

恢複至指定的

stash

強制删除分支

git branch -D dev
           

強制删除

dev

分支,用于丢棄一個沒有被合并過的分支。

檢視遠端庫資訊

git remote -v
           

檢視遠端庫詳細資訊。

git remote
           

檢視遠端庫資訊。

推送分支

git push origin dev
           

将本地的

dev

分支推送到遠端庫

origin

上。

當從遠端庫

clone

時,預設情況下會将本地的

master

分支與遠端的

master

分支相關聯。

建立分支并關聯

git checkout -b dev origin/dev
           

建立一個本地分支

dev

,并與遠端庫

origin

dev

分支相關聯。

将本地分支與遠端分支相關聯

git branch --set-upstream-to=origin/dev dev
           

将本地分支

dev

與遠端庫

origin

dev

分支相關聯。

變基

git rebase
           

把本地未

push

的分叉送出曆史整理成直線。(不是很明白)

标簽

就是一個讓人容易記住的有意義的名字,它跟某個

commit

綁在一起。

建立标簽

git tag v1.0
           

在最新送出的

commit

上打标簽。

git tag v0.9 f52cb63
           

給某次commit打标簽。

git tag -a v0.1 -m "version 0.1 released" 1094adb
           

建立帶有說明的标簽。

檢視标簽

git tag
           

檢視所有标簽。

git show v0.9
           

檢視标簽的詳細資訊。

删除标簽

git tag -d v0.1
           

用于删除某個标簽。

推送标簽

git push origin v1.0
           

将标簽推送到遠端庫。

git push origin --tags
           

将本地所有标簽推送到遠端庫。

删除遠端标簽

git push origin :refs/tags/v0.9
           

用于删除一個遠端标簽。

忽略特殊檔案

在Git工作區的根目錄下建立一個特殊的

.gitignore

檔案,然後把要忽略的檔案名填進去,Git就會自動忽略這些檔案。

檢驗

.gitignore

的标準是

git status

指令是不是說

working directory clean

配置别名

git config --global alias.st status
           

告訴Git,以後用

st

代替

status