git 记要
git add , git checkout
git add 后修改文件,可以再使用 git checkout 使得 work dir 返回到 stage 区的刚刚 git add 的状态
保存 git commit -m ’xxx’ , git commit —amend
将 stage 区文件提交到 history 区,进入history 后的修改将永远不会丢失。
反悔之小悔 git reset
git reset a.txt 可以将已经使用 git add 命令将其添加到 stage 区的 a.txt 还原到 work dir。
从 work dir 区提交到 history区
git add . 然后使用 git commit -m ‘xxxx’
简略写法:git commit -a
反悔之大悔 git checkout HEAD .
使用 git checkout HEAD . 可以恢复文件到最初的未修改的状态。
如果想要恢复到任何一个状态,可以使用 git checkout hashvalue。
风险:高风险
,这个操作会将 work dir 的数据恢复指定成为 commit 的样子,且会删除 stage 中的数据,无法恢复。
合并多个 commit,git reset hashxxx
如果有多个 commit,可以通过 git reset 来将它们合并为一个 commit 。
使用 git reset hashvaluexxx ,相当于 HEAD 移动到了某一个 commit,且不会修改 work dir 中的数据,所以只要再次 git add. 和 git commit 之后就相当于把之前的多个 commit 合并到了一个。
这样之后之前所有的 commit 都无法看到了,可以通过使用 git reflog
来查看之前所有的历史记录。
将本地原有仓库添加到远程已有仓库时出现的问题
如果本地和远程仓库有不相关的历史记录,无法合并,如:
可以使用:
git pull origin main --allow-unrelated-histories
即,添加--allow-unrelated-histories
参数
然后会自动进入 vim ,编辑完冲突部分,选择该留下哪些,再
:wq
保存然后使用
git add xxx
添加修改文件,使用git commit xxx
添加commit- 再次使用
git push -u origin main
将本地仓库与远程仓库进行合并即可。