tft每日頭條

 > 圖文

 > git怎麼操作

git怎麼操作

圖文 更新时间:2024-06-29 16:59:40

git怎麼操作?之前看過一個特别有趣的網站 - Oh shit, Git!,我來為大家科普一下關于git怎麼操作?以下内容希望對你有幫助!

git怎麼操作(如何優雅的使用git)1

git怎麼操作

之前看過一個特别有趣的網站 - Oh shit, Git!

這個網站上面整理了一些 Git 新手在使用 Git 時常會遇到的各種突發狀況,并貼心的給出了應對方案。

我大緻瞄了一眼,文章裡面提到的一些問題,大部分新手确實會經常遇到,我簡單翻譯了一下,希望對你有所幫助。

注:為了使場景描述更加生動,因此加入了新手女神與高級舔狗兩個角色來配合講解

女神:哎呀,剛剛有個地方搞錯了,怎麼重新來過呢?

女神莫慌,Git 的牛逼之處,在于它自帶時光機效果,能讓你在項目的曆史代碼中任意穿梭。

如果項目的某一處地方它自己不小心壞掉了,不妨試下下面的這行命令:

$ git reflog

這條命令能列出你在 Git 上的所有操作記錄,你隻要找到 HEAD@{index} 前面所對應的操作索引,并使用下面命令即可:

$ git reset HEAD@{index}

注:使用時需将HEAD@{index}替換為對應索引。

女神:想改個小東西,但代碼不小心提交(commit)了,這可咋整?

這個簡單,首先,添加下當前已改動的代碼:

$ git add .

然後,運行下面這條命令,它就會把你剛剛添加的代碼合并到最後一次提交上了:

$ git commit --amend

女神:哼!剛剛寫的提交曆史寫得不夠好,我想重寫一下!

好的,還是上面提到過的那條代碼,運行一下,就可以重寫提交曆史啦:

$ git commit --amend

女神:這下慘了,我剛剛不小心把新分支的代碼提交到主分支上了!

女神别着急,我們一步步來,你先創建個新分支(some-new-branch-name):

$ git branch some-new-branch-name

然後把剛才的提交從主分支中移除:

$ git reset HEAD~ --hard

需要注意的是,上面的代碼隻會切換到最後一條提交記錄上,如果你已跑到其它提交記錄上怎麼辦?沒關系,你可以用 git reset HEAD@{number} 再跑回來。

等你跑回來之後,我們再切換到新分支上:

$ git checkout some-new-branch-name

好了,完成啦,現在主分支幹幹淨淨,剛剛不小心提交的代碼也被移到新分支上了。

需要注意的是,上面的代碼隻對本地倉庫有效,如果你已經把代碼提交到遠程倉庫上,那就得跟隊友商量下解決方案了。

啥?我就是你隊友?這可真讓我受寵若驚☺️ 不過沒事,等下我幫你在線上主分支上 reset 然後 push -f 一下就好啦~

女神:完蛋了,我把代碼提交到錯誤的分支上了!

别怕别怕,有我在呢。

我們先撤銷最後一次提交,但保留變更代碼:

$ git reset HEAD~ --soft $ git stash

再切到你想要提交的正确分支(name-of-the-correct-branch)上,并把變更代碼提交上去:

$ git checkout name-of-the-correct-branch $ git stash pop $ git add . $ git commit -m "your message here"

OK,到這裡就搞定了。

如果想要逼格高點,也可以用 cherry-pick 這個命令來完成上面那些操作。具體的操作步驟如下。

首先,切換到正确的分支上:

$ git checkout name-of-the-correct-branch

然後使用 cherry-pick 來獲取最新一條提交記錄:

$ git cherry-pick master

最後再把主分支上那條提交錯誤的記錄删除:

$ git checkout master $ git reset HEAD~ —-hard

女神:咦?為啥我運行 diff 後啥都沒有?

遇到這種情況,應該是文件沒有加入到暫存區的緣故。解決方案很簡單,咱們要麼把文件加入到暫存區,要麼就直接使用下面這條命令:

$ git diff --staged

這樣,就可以看到未存入暫存區文件的 diff 效果啦。

女神:這項目怎麼這麼亂!好煩呐!我不玩了!

别氣别氣,别氣壞了身子就不好了,麼麼哒

如果本地代碼倉庫把自己折騰得亂七八糟,不用怕,用下面這招,一擊必殺:

$ cd .. $ sudo rm -r fucking-git-repo-dir $ git clone https://some.github.url/fucking-git-repo-dir.git $ cd fucking-git-repo-dir

是的,這就是備胎(線上倉庫)的強大之處,隻要你備胎尚在,你就可以大大方方的把本地倉庫删了,clone 備胎,從頭再來。

女神:好啦,我沒什麼問題了,謝謝你哦~

不不不,這塊問題還多着呢?你打開下面這個網站,聽我跟你細細道來…

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved