如何优雅的使用git?

2023-09-06 0 544

以后看完一个不光有意思的中文网站 – Oh shit, git!

那个中文网站下面再次整理了许多 Git 初学者在采用 Git 时常会碰到的各式各样紧急状况,并周到的得出了应付计划。

我大体瞄了一看,该文里头提及的许多问题,绝大部分初学者的确会时常碰到,我单纯译者了呵呵,期望对你略有协助。

注:为的是使情景叙述更为生动活泼,因而再次加入了初学者雅典娜与高阶舔狗三个配角来相互配合传授

雅典娜:哎,才刚有位地方性弄错了,是不是再次来过呢?

雅典娜莫慌,Git 的牛逼之处,是它便携式时光机效用,能阳光普照工程项目的发展史标识符中任一穿行。

假如工程项目的某两处地方性它自己不留神装好了,何不紫菊下面的T5800指示:

$ 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 clonehttps://some.github.url/fucking-git-repo-dir.git $ cd fucking-git-repo-dir

是的,这就是备胎(线上仓库)的强大之处,假如你备胎尚在,你就可以大大方方的把本地仓库删了,clone 备胎,从头再来。

雅典娜:好啦,我没什么问题了,谢谢你哦~

不不不,这块问题还多着呢?你打开下面那个中文网站,听我跟你细细道来…

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务