常用git命令

2021-10-21 16:59:11 字數 3423 閱讀 6424

切換分支:不同分支的切換

git checkout [分支名]

例如:git checkout dev

檔案覆蓋:放棄某一檔案的全部修改,使用遠端分支上的檔案直接覆蓋

git checkout -- [檔名]

例如:git checkout -- text.txt

注意:--後面有乙個空格

合併分支:需先切換到目標分支,再進行合併

git checkout [合併的目標分支]

git merge [需合併的分支]

例如:將test分支上的內容合併到dev上

git checkout dev

git merge test

暫存分支**

應用場景:在test分支開發了一半功能後,臨時要切換到dev分支上修改**,用於暫存test分支上,已經git add且暫未git commit的檔案

暫存三個步驟:

1.檢視及確認哪些檔案需要暫存

git status

2.確認後暫存檔案

git stash

3.暫存後檢視暫存列表,確認好已經暫存,確認好之後就可以切換分支

git stash list

取出暫存檔案的幾個方法:

1.如果你的暫存列表只有乙個暫存資訊,可使用以下**取出最近暫存的內容(注意git stash pop 後,會把對應的暫存資訊從 git stash list列表中移除)

git stash pop

git stash list

會顯示stash@: wip on master: d273904 m等資訊,其中,這個d273904,就是這個暫存資訊的id

注意事項:

1、取出暫存資訊時,不能有已經git add且未git commit的檔案,如果有的話會進行提示

2、取出暫存資訊時,注意對應好分支

引用網上查詢的資料說明一下使用的幾種模式和差別

git reset四種模式區別和使用場景

區別:–hard:重置位置的同時,直接將 working tree工作目錄、 index 暫存區及 repository 都重置成目標reset節點的內容,所以效果看起來等同於清空暫存區和工作區。

–soft:重置位置的同時,保留working tree工作目錄和index暫存區的內容,只讓repository中的內容和 reset 目標節點保持一致,因此原節點和reset節點之間的【差異變更集】會放入index暫存區中(staged files)。所以效果看起來就是工作目錄的內容不變,暫存區原有的內容也不變,只是原節點和reset節點之間的所有差異都會放到暫存區中。

–mixed(預設):重置位置的同時,只保留working tree工作目錄的內容,但會將 index暫存區 和 repository 中的內容更改和reset目標節點一致,因此原節點和reset節點之間的【差異變更集】會放入working tree工作目錄中。所以效果看起來就是原節點和reset節點之間的所有差異都會放到工作目錄中。

使用場景:

–hard:(1) 要放棄目前本地的所有改變時,即去掉所有add到暫存區的檔案和工作區的檔案,可以執行 git reset -hard head 來強制恢復git管理的資料夾的內容及狀態;(2) 真的想拋棄目標節點後的所有commit(可能覺得目標節點到原節點之間的commit提交都是錯了,之前所有的commit有問題)。

–soft:原節點和reset節點之間的【差異變更集】會放入index暫存區中(staged files),所以假如我們之前工作目錄沒有改過任何檔案,也沒add到暫存區,那麼使用reset --soft後,我們可以直接執行 git commit 將 index暫存區中的內容提交至 repository 中。為什麼要這樣呢?這樣做的使用場景是:假如我們想合併「當前節點」與「reset目標節點」之間不具太大意義的 commit 記錄(可能是階段性地頻繁提交,就是開發乙個功能的時候,改或者增加乙個檔案的時候就commit,這樣做導致乙個完整的功能可能會好多個commit點,這時假如你需要把這些commit整合成乙個commit的時候)時,可以考慮使用reset --soft來讓 commit 演進線圖較為清晰。總而言之,可以使用–soft合併commit節點。

–mixed(預設):(1)使用完reset --mixed後,我們可以直接執行 git add 將這些改變果的檔案內容加入 index 暫存區中,再執行 git commit 將 index暫存區 中的內容提交至repository中,這樣一樣可以達到合併commit節點的效果(與上面–soft合併commit節點差不多,只是多了git add新增到暫存區的操作);(2)移除所有index暫存區中準備要提交的檔案(staged files),我們可以執行 git reset head 來 unstage 所有已列入 index暫存區 的待提交的檔案。(有時候發現add錯檔案到暫存區,就可以使用命令)。(3)commit提交某些錯誤**,或者沒有必要的檔案也被commit上去,不想再修改錯誤再commit(因為會留下乙個錯誤commit點),可以回退到正確的commit點上,然後所有原節點和reset節點之間差異會返回工作目錄,假如有個沒必要的檔案的話就可以直接刪除了,再commit上去就ok了。

強制回退已push的commit

應用場景1:已經本地git add,git commit,git push的**,想要回退到遠端分支上某個commit的版本(注意:在強制回退版本之後,git提交記錄,回退版本之後的記錄都會清除)

git log # 得到你需要回退一次提交的commit id

git reset --hard [commit_id]

git push origin head --force

回退已push的commit

應用場景:已經push的**

git log # 得到你需要回退一次提交的commit id

git revert -n [commit_id]

git push -f

git revert 和git reset,在回退已push commit的差異:

git reset 回退後,回退版本之後(即你誤push的commit不會顯示在git log中,如果有其他人重新拉取你回退版本後的**,會**衝突)

git revert 回退後,誤push的commit提交記錄會保留,並把你誤提交的這個commit改動的部分放到stage區域,可視情況重新修改**,再推送到對應遠端分支上

注意:因為回退後,本地的版本已經落後遠端分支,git push可能會推送失敗,確認好**沒有問題之後,可使用 git push -f 強制推送到遠端分支

參考資料:

常用Git命令

下面是我在開發中常用的git命令 1.配置git git config global add user.email git config global add user.name 2.建立新的專案 git init git add git commit a m git remote add orig...

常用Git命令

附上一些git的常見命令 gitremote add origin git github.com myaccount myproject.git git push u origin master gitinit 建立repository git 命令 help 檢視幫助命令 touchfilenam...

常用Git命令

建立管理倉庫 git initadd和commit git add readme.txt git commit m wrote a readme file 簡略版log git log pretty oneline abbrev commit當前狀態 git status撤銷更改 git check...