Git基础操作:删除分支、修改提交消息及合并 commits

需积分: 0 0 下载量 135 浏览量 更新于2024-08-05 收藏 197KB PDF 举报
在独立使用Git时,您可能会遇到各种场景,本文将详细介绍五个常见的操作:删除不需要的分支、修改提交消息、合并连续或间隔的提交,以及暂存区管理。以下是每个操作的详细指南: 1. **删除不需要的分支**: 当不再需要某个分支时,可以使用`git branch -d [分支名称]`命令删除普通分支,但若分支未被合并,会提示未完全合并。如果确实要删除,使用`git branch -D [分支名称]`强制删除。例如,如果要删除分支`fix_css`,且该分支未被合并,命令会显示警告,执行`git branch -D fix_css`后,分支将被删除。 2. **修改commit消息**: 如果想更改最近一次提交的消息,可以使用`git log -1`查看最新提交,然后通过`git commit --amend`打开交互式编辑器,修改message。比如,将`Addreferingprojects`改为`Add a referring project`。但注意,这会导致当前提交的ID改变,因为commit ID与message紧密相关。 3. **合并连续的多个commit**: 如果想将连续的几个commit合并成一个,可以使用`git rebase`命令。在这个例子中,通过`git rebase -i HEAD~n`(n为要合并commit的数量)进入交互模式,选择需要合并的commit(如`pick`),然后指定新的message,如将`Addreferingprojects`变为`Add a referring project`。执行`git rebase`后,所有选中的commit会被合并到一起,并更新master分支。 4. **合并间隔的多个commit**: 对于间隔的commit,通常情况下直接使用`git rebase`可能不会自动合并,因为它们不是连续的。在这种情况下,可能需要手动处理每一对相邻的commit,或者先使用`git cherry-pick`逐个将它们移到一个新的分支中,然后再合并。 5. **暂存区管理**: Git暂存区(staging area)由`git add`命令控制。当你更改文件后,用`git add [file]`将文件添加到暂存区,然后才能进行commit。暂存区的作用是准备提交前对文件做最后的检查和整理,确保所有必要的改动都包含在内。 总结来说,这些操作涵盖了Git基本的分支管理、提交信息调整以及工作流程优化。熟练掌握这些技巧有助于提高开发效率并保持代码仓库的整洁。在实际操作中,根据项目需求灵活运用这些命令,能更好地应对各种Git场景。

Fetching upstream changes from git@github. com:a792883583/treeHoleScore.git > /usr/bin/git --version # timeout=10 > git --version # 'git version 1.8.3.1' using GIT _ASKPASS to set credentials github > /usr/bin/git fetch --tags --progress git@github. com:a792883583/treeHoleScore.git +refs/heads/*:refs/remotes/origin/* # timeout=10 ERROR: Error fetching remote repo 'origin' hudson. plugins.git.GitException: Failed to fetch from git@github. com:a792883583/treeHoleScore.git at hudson. plugins . git .GitSCM. fetchFrom(GitSCM. java:1003) at hudson. plugins .git .GitSCM. retrieveChanges(GitSCM. java:1245) at hudson.plugins.git.GitsCM. checkout(GitSCM. java:1309) at hudson.scm. SCM. checkout(SCM. java:540) at hudson. mode1. AbstractProject . checkout(AbstractProject . java:1240) at hudson. model AbstractBuild$AbstractBuildExecution. def aultCheckout (AbstractBuild. java:649) at jenkins .scm. SCMCheckoutStrategy . checkout(SCMCheckoutStrategy . java:85) at hudson . model. AbstractBuild$AbstractBuildExecution. run(AbstractBuild. java:521) at hudson.model . Run. execute(Run. java:1900) at hudson.model. FreeSty1eBuild.run(FreeStyleBuild.java:44) at hudson. model. ResourceController . execute(ResourceController . java:101) at hudson. model. Executor .run(Executor. java:442) Caused by: hudson. plugins.git .GitException: Command "/usr/bin/git fetch --tags --progress git@github . com: a792883583/treeHoleScore.git +refs/heads/* :refs/remotes/origin/*" returned status code 128: stdout: stderr: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. at org.jenkinsci .plugins.gitclient .CliGitAPIImp1.1aunchCommandIn(CliGitAPImp1.java:2734) at org.jenkinsci .plugins.gitclient .CliGitAPIImp1.1aunchCommandWithCredentials(CliGitAPIImpl.java:2111) at org.jenkinsci.plugins . gitclient .CliGitAPIImp1$1. execute(CliGitAPIImp1.java:623) at hudson.p1ugins . git .GitSCM. fetchFrom (GitSCM. java:1001) 11 more ERROR: Error fetching remote repo ' origin' Finished: FAILURE

2023-02-08 上传