Git 基礎使用詳解

2021-10-01 06:08:10 字數 4092 閱讀 2283

git❓一小時學會 git

1、git status #檢視修改狀態

# 檢視指定檔案狀態

git status [filename]

# 檢視所有檔案狀態

git status

2、git pull origin master #拉取遠端倉庫 master 分支合併到本地,master 根據場景換成其它分支名

3、git add file #新增檔案到暫存區,可用 * or . 新增所有

# 新增指定檔案到暫存區

$ git add [file1] [file2] ...

# 新增指定目錄到暫存區,包括子目錄

$ git add [dir]

# 新增當前目錄的所有檔案到暫存區

$ git add .

4、git commit -m "commit message" #提交暫存區到倉庫區(提交到本地版本庫,並新增注釋,注釋表明此次修改內容,要清晰準確)

# 提交暫存區到倉庫區

$ git commit -m [message]

# 提交暫存區的指定檔案到倉庫區

$ git commit [file1] [file2] ... -m [message]

# 提交工作區自上次commit之後的變化,直接到倉庫區,跳過了add,對新檔案無效

$ git commit -a

# 提交時顯示所有diff資訊

$ git commit -v

# 使用一次新的commit,替代上一次提交

# 如果**沒有任何新變化,則用來改寫上一次commit的提交資訊

$ git commit --amend -m [message]

# 重做上一次commit,幷包括指定檔案的新變化

$ git commit --amend [file1] [file2] ...

5、git push origin master #將本地版本提交到遠端倉庫 master 分支,master 根據場景換成其它分支名(將本地的master分支推送到origin主機的master分支,如果後者不存在,則會被新建)

對大部分日常工作來說, 上面幾個命令基本就夠用了。

當你安裝 git 後首先要做的事情是設定你的使用者名稱和 e-mail 位址。這是非常重要的,因為每次 git 提交都會使用該資訊。它被永遠的嵌入到了你的提交中

$ git config --global user.name "wufei"  # 名稱

$ git config --global user.email [email protected] # 郵箱

只需要做一次這個設定,如果你傳遞了 --global 選項,因為 git 將總是會使用該資訊來處理你在系統中所做的一切操作。如果你希望在乙個特定的專案中使用不同的名稱或 e-mail 位址,你可以在該專案中執行該命令而不要 --global 選項。總之--global為全域性配置,不加為某個專案的特定配置。

專案開發的時候,有時候是先在本地建乙個專案,再提交到遠端倉庫的。

建立專案目錄(或通過 ide 建立),命令列 cd 到專案目錄

執行 git init , 將在專案目錄建立 .git 目錄

執行 git add * ,將所有檔案新增到暫存區,這裡要先建立乙個 .gitignore 檔案,將不需要版本維護的檔案新增進去忽略,不然各種 ide 編譯資料夾,環境相關檔案都加到版本庫去了。刪除檔案用git rm file_name

執行 git commit -m "upload project" ,提交到本地倉庫

在 gitlab 或 github 上建立乙個倉庫,並將倉庫位址複製下來

執行 git remote add origin git@server-name:path/repo-name.git ,關聯遠端倉庫,倉庫位址如果是 http 開頭則要使用者名稱密碼,如果是 git 開頭,則是走的 ssh 協議,需要將你本機的 ssh 公鑰新增到遠端倉庫服務上。

執行 git push -u origin master ,推送本地倉庫內容到遠端倉庫

這樣在遠端倉庫目錄,就能看到你提交上去的檔案內容了。

修改內容

git add * ,將修改的內容新增到暫存區

git commit -m "fix *** issue" ,提交到本地倉庫

git push -u origin master , 推送本地倉庫內容至遠端倉庫

有時候改了檔案,想反悔怎麼辦,git 給你「後悔藥」。

單個檔案的還原:

這裡涉及幾個場景

整個版本的還原:

找不到 commit_id? git reflog 可檢視每乙個命令的歷史記錄,獲取對應操作的 commit_id。git log [--pretty=oneline], 可檢視 commit 記錄

上乙個版本就是 head^,上上乙個版本就是 head^^,往上 100 個版本寫成 head~100。3628164 是具體某個 commit_id,不需要寫全,只需要唯一確定就行,可往前進也可往後退。(git windows2.20.1 版貌似不支援對 head^ 的操作)

首先,可以試圖用 git push origin branch_name 推送自己的修改;

如果推送失敗,則因為遠端分支比你的本地更新,需要先用 git pull 試圖合併;

如果合併有衝突,則手動解決衝突,並在本地提交;

沒有衝突或者解決掉衝突後,再用 git push origin branch-name 推送就能成功!

如果 git pull 提示「no tracking information」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令 git branch –set-upstream branch-name origin/branch-name

在本地建立和遠端分支對應的分支,使用 git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致

平時開發時需要建立子分支來實現你的功能模組,然後再合併到主分支中。

git checkout -b dev = git branch dev + git checkout dev

fast-forward 合併,「快進模式」,也就是直接把 master 指向 dev 的當前提交,所以合併速度非常快。存在衝突的不能 fast forward。git merge --no-ff -m "merge with no-ff" dev fast forward 模式下,刪除分支後,會丟掉分支資訊。如果強制禁用 fast forward 模式,git 就會在 merge 時生成乙個新的 commit,這樣,從分支歷史上就可以看出分支資訊

當發布版本時,一般需要對當前版本進行標籤記錄,以便後續進行版本檢視或回退。

刪除已經推送到遠端的標籤:

提高效率的 tips

# 檢視系統config

git config --system --list

# 檢視當前使用者(global)配置

git config --global --list

# 檢視當前倉庫配置資訊

git config --local --list

git config --global alias.st status # 後面可以用 git st 來代替 git status 了

git config --global alias.ck checkout  # 後面可以用 git ck 來代替 git checkout 了

git config --global alias.cm 'commit -m' # 後面可以用 git cm 來代替 git commit -m 了

git pull origin master 或 git push origin master, 可直接 git pull 或 git push, 如果出現「no tracking information」的提示,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令 git branch --set-upstream-to=origin/master master 建立關聯即可。

git 使用詳解

git init 2.git 配置別名 git config global alias.st status git config global alias.ck checkout git config global alias.pl pull git config global alias.ps p...

git使用詳解

另外一種是readme.txt已經放入暫存區了,接著又作了修改,撤銷修改就回到新增暫存區後的狀態。修改readme.txt內容。新增到暫存區。切換回主分支 master 合併dev分支,使用命令 git merge no ff m 注釋 dev 檢視歷史記錄 另一種方式是使用git stash po...

git使用詳解

在本地磁碟建立乙個資料夾,右擊git bash here開啟命令視窗,git初始化本地倉庫會出現.git檔案 git init 連線遠端倉庫 git remote add origin 倉庫位址 將遠端生成的檔案pull到本地 git pull origin master 這時候就可以設定追蹤 gi...