选择需要回滚到的分支记录,右键Reset重置到此
在本地代码仓库已经修改,再将修改记录merge到分支上
选择需要merge的remote分支。这里需要注意的当需要将其他分支的修改记录合并到master分支时,你需要将项目分支选择到master分支上,然后像下面的图片一样选择一个本地其他分支的内容,然后合并到主线上即可。
这样就能实现git提交的回滚操作,并且可以清除回滚中间的提交记录。:smile:
对于从A分支将新增内容合并到B分支的情况,采取上面步骤中后两步也可以实现记录整齐划一的处理结果。注意:在B分支上合并A分支的内容时,选择A本地的记录,这样会省去在远程分支上从A分支merge到B分支的操作,因为新增merge的内容都是从本地记录中进行修改的,再提交到远程镜像仓库,就如同自己在B分支上直接修改并上传一样。:fried_shrimp:
在eclipse中开发时,我们可能会遇到对于一些测试类,应保留在本地但不上传到git仓库的需求,这时可以通过修改.gitignore
文件来实现。
首先打开eclipse的左侧文件目录中,显示该项目下的所有资源项。
去除 .* resources 选项的勾选,项目文件下就会显示所有文件。然后修改 .gitnore 文,添加你需要忽略的文件/文件目录的路径,注意这里填写相对目录,如: /target/ .gitattributes 等。
但是还存在一个问题,对于已存在远程仓库的文件,不想上传到远程仓库的本次修改,可以选择该文件然后右键菜单中选择 Team -> Advanced -> Assume Unchanged 忽略本次修改,如下图
如果需要清除该文件之前提交到git远程仓库的版本记录,需要配合下面 删除远程仓库中的文件而本地保留 的步骤。
上面解决了对于已经在远程仓库文件的本次修改忽略的问题,但是要是已经在远程仓库中的文件,现在不需要保留在远程仓库了,那么我们需要将这个文件从远程仓库删除,但是本地还是要保留这个文件,我们删除的只是在远程仓库的记录而已。
git rm -r --cached $filepath
上面命令的意思是删除了指定$filepath
文件在本地git仓库中的index索引记录,该文件会从track状态变为untrack状态。执行命令后会看到项目下该文件会带上?
符号,通过git status
也可以看到,该文件变为了 Untracked files 标记,而且在 Changes to be committed 状态下有deleted: $filepath
的记录,最后把这条记录push到git远程仓库之后,远程仓库中也会同步更新将这个文件删除。
如果你想以后都不提交这个文件,则可以将这个文件的相对路径加入 .gitignore 文件。