Open renjie-run opened 3 years ago
在多行 commit 信息编辑完成之后,再追加引号回车即可。具体多行 commit 的生成方式如下:
git commit -m '1.xxx. -> 2.xxx.'
执行如下命令,即可进入最后一条 commit 信息修改的界面。
git commit --amend
删除指定的文件修改
git checkout --指定文件
删除所有修改
git checkout -f
代码修改完成后,依次执行以下命令
git add . git commit --amend
如图,以上命令执行完成后,会出现 commit 相关信息。此时,如果不修改 commit 信息,直接 shift + : ,然后在输入框里输入 q 回车即可。如果修改 commit 信息,修改完成后,在输入框里输入 wq 回车即可完成修改。这样的话,commit 记录仍然只是一条。
shift + :
q
wq
方式一: 这种方式是使用 reset 命令来实现。
reset
首先,需要使用 git reset head~xxx 命令来清除这些 commit。例如,有 3 条 commit,可执行 git reset head~3,一次性清除这些 commit,也可以执行 3 次 git reset head~1 命令依次清除。
git reset head~xxx
git reset head~3
git reset head~1
然后按照 情形一 的步骤进行操作,完成新的一条新的 commit 的创建。
方式二: 这种命令使用 rebase 命令来实现。
rebase
通过 git log 命令查看当前分支的提交情况。
git log
通过 git rebase -i <commit_id> 开始进行 commit 的合并,其中 commit_id 是合并起始的 commit 的 id(并不会合并该条 commit)。这里也可以使用 git rebase -i HEAD~xxx 的命令来进行合并,HEAD 后面跟的是要合并从 HEAD 版本开始的 1-xxx 的 commit 信息。
git rebase -i <commit_id>
git rebase -i HEAD~xxx
将第二步中的第二行的 pick 修改为 squash 或者 s,之后保存并关闭文本编辑窗口即可。这里的原理就是将 squash 项的 commit 都合并到 pick 项的 commit 上。
第三步执行完成后,如果有冲突需要解决冲突,然后继续合并,当然也可以放弃合并。commit合并完成后,会进入 commit 信息合并编辑页面,在该页面编辑好合并后的 commit 信息后保存推出即可。 解决冲突,继续合并
git add . git rebase --continue
放弃合并
git rebase --abort
commit 信息合并编辑页面
合并成功
再次使用 git log 查看提交记录,里面就只有最初提交的 commit 和 合并后的 commit 信息了。
例如,要修改的分支名称为 oldName,新的分支名称为 oldName。
仅修改本地分支名称
git branch -m oldName newName
修改本地分支名称,同时更新远程仓库已经提交的这个分支的名称
第一步,更新对应的本地分支名称
第二步,删除远程的这个分支
git push --delete origin oldName
上传新命名的分支
git push origin newName
将本地的这个分支与远程分支相关联
git branch --set-upstream-to origin/newName
将本地仓库与远程仓库相关联
git remote add origin 远程仓库地址
常用 commit 格式
基础操作
实现多行 commit
在多行 commit 信息编辑完成之后,再追加引号回车即可。具体多行 commit 的生成方式如下:
修改最后一次提交的 commit 信息
执行如下命令,即可进入最后一条 commit 信息修改的界面。
清除本地修改
删除指定的文件修改
删除所有修改
合并多个 commit 为一条
情形一:已经存在一条 commit,新修改的代码提交后希望只看到一条 commit
代码修改完成后,依次执行以下命令
如图,以上命令执行完成后,会出现 commit 相关信息。此时,如果不修改 commit 信息,直接
shift + :
,然后在输入框里输入q
回车即可。如果修改 commit 信息,修改完成后,在输入框里输入wq
回车即可完成修改。这样的话,commit 记录仍然只是一条。情形二:已经存在多条 commit,并且没有要修改的代码了
方式一: 这种方式是使用
reset
命令来实现。首先,需要使用
git reset head~xxx
命令来清除这些 commit。例如,有 3 条 commit,可执行git reset head~3
,一次性清除这些 commit,也可以执行 3 次git reset head~1
命令依次清除。然后按照 情形一 的步骤进行操作,完成新的一条新的 commit 的创建。
方式二: 这种命令使用
rebase
命令来实现。通过
git log
命令查看当前分支的提交情况。通过
git rebase -i <commit_id>
开始进行 commit 的合并,其中 commit_id 是合并起始的 commit 的 id(并不会合并该条 commit)。这里也可以使用git rebase -i HEAD~xxx
的命令来进行合并,HEAD 后面跟的是要合并从 HEAD 版本开始的 1-xxx 的 commit 信息。将第二步中的第二行的 pick 修改为 squash 或者 s,之后保存并关闭文本编辑窗口即可。这里的原理就是将 squash 项的 commit 都合并到 pick 项的 commit 上。
第三步执行完成后,如果有冲突需要解决冲突,然后继续合并,当然也可以放弃合并。commit合并完成后,会进入 commit 信息合并编辑页面,在该页面编辑好合并后的 commit 信息后保存推出即可。 解决冲突,继续合并
放弃合并
commit 信息合并编辑页面
合并成功
再次使用
git log
查看提交记录,里面就只有最初提交的 commit 和 合并后的 commit 信息了。修改分支名称
例如,要修改的分支名称为 oldName,新的分支名称为 oldName。
仅修改本地分支名称
修改本地分支名称,同时更新远程仓库已经提交的这个分支的名称
第一步,更新对应的本地分支名称
第二步,删除远程的这个分支
上传新命名的分支
将本地的这个分支与远程分支相关联
将本地仓库与远程仓库相关联