Git 技巧

恢复到某一次提交

如果你想恢复到某一次提交,可以使用 git reset 命令。有几种不同的 reset 模式,其中常见的有三种:--soft、--mixed(默认选项)和 --hard。

1、使用 --soft 模式:

git reset --soft <commit-hash>

这将取消最新的提交,并将更改保留在工作目录中,并且这些更改被标记为已暂存。你可以对这些更改进行进一步的修改,然后重新提交。

2、使用 --mixed 模式(默认选项):

git reset --mixed <commit-hash>

这将取消最新的提交,并将更改保留在工作目录中,但不会标记为已暂存。你需要使用 git add 将想要的更改添加到暂存区,然后再次提交。

3、使用 --hard 模式:

git reset --hard <commit-hash>

这是最彻底的方式,将取消最新的提交,并删除相应的更改,恢复到指定提交的状态。请注意,这样的操作是不可逆的,慎用。

请将 替换为你想要回滚到的提交的哈希值。你可以使用 git log 来查看提交历史以获取正确的哈希值。

在所有情况下,请确保在执行这些命令之前备份你的工作,以免意外删除重要的更改。

gitignore 不生效解决

当你已经执行了git add .后再去.gitignore中添加忽略文件规则时,这些规则可能不会立即生效,因为已经添加到暂存区(staging area)的文件不会受到.gitignore的影响。.gitignore主要影响未被添加到暂存区的文件。

如果你想让.gitignore规则生效,可以按照以下步骤操作:

1、清空暂存区:

git reset

这将取消之前的git add .,并将所有文件从暂存区移除。

2、应用.gitignore规则:

git rm --cached -r .

这将清除缓存中的所有文件,同时保留工作目录中的文件。

3、重新添加文件:

git add .

4、提交更改:

git commit -m "Apply .gitignore rules"

请注意,这些步骤可能会导致你丢失之前已经添加到暂存区的其他文件的更改,因此请在执行这些步骤之前确保你已经备份了重要的更改或文件。

本文链接: https://jianz.xyz/index.php/archives/436/

1 + 6 =
快来做第一个评论的人吧~