Git 相關操作

2021-10-04 03:30:37 字數 4296 閱讀 1928

圖中的幾個專用名詞解釋:

workspace: 工作區

index / stage: 暫存區

repository: 本地倉庫

remote: 遠端倉庫

檢視版本資訊:git --version 

配置相關:

1.檢視配置資訊:

2.配置使用者資訊

3. 其他配置

操作命令相關:

1. 新建**庫:

2. 提交

3. 暫存

4. 檢視狀態

5. 分支管理

假如在dev分支上開發完並push,現想把dev分支上的**合併到master,需要切換到master並執行 git pull , 然後git merge dev 即可

6. 合併commitid

git log --oneline --graph 檢視提交歷史, 如:* 82489b7 (head -> release/1.0.0, origin/release/1.0.0) update .gitignore* 7ac01e7 fix ci err* 93f7ec8 init dongdon**iet project* bc0d48a (master) .gitignore* d3abfa5 init 如果要合併93f7,7ac0, 8248,則執行 git reset bc0d 然後執行 git add . 後執行 git commit git push命令即可

git 問題集錦

情況一:最近一次 commit 的**有問題怎麼辦?

git add 我是修改內容.txt

git commit --amend

【amend】修正,會對最新一條 commit 進行修正,會把當前 commit 裡的內容和暫存區(stageing area)裡的內容合併起來後建立乙個新的 commit,用這個新的 commit 把當前 commit 替換掉。

輸入上面的命令後,git 會進入提交資訊編輯介面,然後你可以刪除之前的 changeid,並且修改或者保留之前的提交資訊,:wq 儲存按下回車後,你的 commit 就被更新了。

情況二:剛剛寫的提交資訊有問題,想修改怎麼辦?

git commit --amend -m "新的提交資訊"
情況三:剛剛提交完**發現,我有個檔案沒儲存,漏了提交上去怎麼辦?

// 最簡單的方式,再次 commit:

git commit -m "提交資訊"

// 另一中方式,使用--no-edit,它表示提交資訊不會更改,在 git 上僅為一次提交。

git add changgefile // changefile 剛剛漏了提交的檔案

git commit --amend --no-edit

git rebase -i

rebase -i 是 rebase --interactive 的縮寫形式,意為「互動式 rebase」。

所謂「互動式 rebase」,就是在 rebase 的操作執行之前,你可以指定要 rebase 的

commit 鏈中的每乙個 commit 是否需要進一步修改。

【注意】看 commit 歷史的時候,最新的提交在最下面。

根據編輯介面中的提示,我們把要修改的倒數第二個 commit,也就是上面的

【修改**格式首行縮排】前面 pick 指令改為 edit。edit的意思編輯器

中已給了解釋,應用這個commit,但是停下來修正。

改完之後,esc退出,:wq 儲存。

情況五:剛剛寫完的提交太爛了,不想改了,想直接丟棄怎麼辦?可以用 reset --hard 來撤銷 commit

git reset --hard head^

// head 表示 head^ 往回數乙個位置的 commit ,head^ 表示你要恢復到哪個 commit。

因為你要撤銷最新的乙個 commit,所以你需要恢復到它的父 commit ,也就是 head^。

那麼在這行之後,你的最新一條就被撤銷了。

git **已經 push 上去發現有問題情況一:如果出錯內容還在私有分支這種情況你修改後,再次提交會報錯,由於你在本地對已有的 commit 做了修改,這時你再 push 就會失敗,因為**倉庫包含本地沒有的 commits。這種情況只在你自己的分支 branch1 ,可以使用強制 push 的方式解決衝突。

git push origin branch1 -f

// -f 是 --force 的縮寫,意為「忽略衝突,強制 push」

情況二:如果出錯內容已經 push 到了 master 分支這種情況可以使用 git 的 revert 指令。

git revert head^

// 上面這行**就會增加一條新的 commit,它的內容和倒數第二個 commit 是相反的,

從而和倒數第二個 commit 相互抵消,達到撤銷的效果。

在 revert 完成之後,把新的 commit 再 push 上去,這個 commit 的內容就被撤銷了。

revert 與前面說的 reset 最主要的區別是,這次改動只是被「反轉」了,

並沒有在歷史中消失掉,你的歷史中會存在兩條 commit :

乙個原始 commit ,乙個對它的反轉 commit。

git 關於暫存的問題假如正在開發手中需求的時候,突然來了個緊急 bug 要修復,這時候需要先 stash 已經寫的部分**,使自己返回到上乙個 commit 改完 bug 之後從快取棧中推出之前的**,繼續工作。

git 分支相關問題

問題1:我想把本地建立的乙個分支 koalanode提交到遠端,並且遠端分支名稱要求 nodescript,且還未建立,需要怎能做?

git 使用者名稱密碼郵箱相關問題

公司倉庫有賬號密碼,自己的github有賬戶密碼,兩個不同賬戶,有一次提交發現自己倉庫的郵箱提交成了公司倉庫設定的郵箱,有點尷尬,為什麼會出現這種問題呢?

首先這個你在剛開始安裝一趟的時候應該就用過:

// 設定檢視 git 使用者名稱和郵箱

git config user.name --檢視git當前配置使用者名稱

git config user.email --檢視git當前配置的郵箱

git config user.name 名稱 設定使用者名稱

git config user.email 郵箱 設定git郵箱

全域性命令設定

git config  --global user.name 你的目標使用者名稱;

git config --global user.email 你的目標郵箱名;

在專案中也可以檢視這些資訊

vi ~/.gitconfig;
知道了這些配置修改之後,你可以選擇全域性配置下,在公司電腦,或者提交前自己看下,就不會再出現上面的尷尬問題了。

git 提交規範

git 工具

推薦: sourcethree

總結

遇到問題多問度娘,重要的是多練習!!!

git 相關操作

merge 比如在上feature 4.2修改,commit push後,切換到dev分支 1 commit push 2 checkout dev 分支。3 git pull origin dev 4 git merge no ff origin feature 4.2 把feature 4.2上...

git相關操作

常用操作 新增賬戶 修改git配置檔案,新增郵箱,以及名稱 vi gitconfig 生成git金鑰 ssh keygen t rsa c 剛新增的郵箱位址 檢視公鑰內容,複製內容,新增至github裡面 cat id rsa.pub轉殖專案 git clone git位址 從github上覆制的專...

Git相關操作

新增關聯遠端倉庫 git remote add origin git github.你的使用者名稱 git推送到遠端倉庫 git push u origin master 在本地倉庫刪除檔案 git rm 我的檔案在本地倉庫刪除資料夾 git rm r 我的資料夾 此處 r表示遞迴所有子目錄,如果你...