2021-04-08
2021/4/8 18:29:35
本文主要是介绍2021-04-08,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实现版本回退:
git reset实现版本回退
当将有错误的文件add进暂存区后,可以使用git reset丢弃修改。即:
git reset HEAD 文件名
但此时修改仍旧保留在工作区。
如果尚未add进暂存区,则可以使用:
git reset --hard HEAD
这样就能彻底丢弃修改,即将修改从暂存区及工作区彻底删除。
#####git checkout丢弃修改
当将错误的文件add进暂存区后,使用git checkout无法将修改从暂存区中撤销,必须要先使用git reset将修改从暂存区中撤销。
如果只是工作区有了修改,则可以直接使用git checkout进行撤销,具体操作如下:
git chekcout – hello
通过这种方式,就可将hello文件自上个commit之后,尚未add进暂存区的修改丢弃。
删除文件:
删除文件需要用到的命令是git rm,且git rm有参数–cached。
当我们需要删除暂存区或分支上的文件,同时工作区也不再需要这个文件了,可以使用:
git rm 文件路径
当我们需要删除暂存区或分支上的文件,但本地又需要使用, 只是不希望这个文件被提交到版本库,可以使用:
git rm --cached 文件路径
如果文件被添加到了暂存区,这种情况下直接使用git rm file_path会报错:
$ git rm hello.txt
error: the following file has changes staged in the index:
hello.txt
(use --cached to keep the file, or -f to force removal)
根据提示我们可以得知,这个时候,如果不想保留hello.txt,则可以使用:
git rm hello.txt -f
如果想保留hello.txt到工作区则可以使用:
git rm --cached hello.txt
还需要通过git commit操作将修改提交。
创建标签:
在开发过程中,commit ID是一串无序的字符,它虽然能唯一标记一次代码提交,即一个版本。但是,它很难记忆和辨识。所以,为了给不同的版本起一个容易辨识的名字,我们可以给这次提交打上一个标签,用不同的标签来对应不同的版本。这样,就相当于给这次提交生成了一个快照。实际上,在为某次提交创建标签的时候,Git会为标签生成一个指针,以指向其对应的提交。然后,我们就可以通过标签找到对应的提交,这样对我们版本发布和代码审查都很有帮助。
查看标签: git tag
使用正则表达式查询标签: git tag -l ‘v5.1.2.*’
创建标签:
git tag +标签名:为本次提交创建标签
git tag +标签名 +版本号:为对应版本创建标签。
git tag -a 标签名 -m “描述”:为标签添加备注信息。
推送标签:
git push 远程主机名 标签名
git push 远程主机名 --tags
删除标签:
本地标签:
git tag -d 标签名
远程标签:
git push origin --delete tag
git push origin :refs/tags/标签名
解决冲突:
Git内容冲突产生的原因是,针对版本库中某个文件的某项内容,不同的操作对其做了不同的修改,以致于在合并不同的操作时发生矛盾。比如下面的例子:
我们在本地master分支,添加了文件hello,其内容如下:
Learning English is easy and simple
然后,我们由master分支切换到一个新的分支develop,并修改hello文件内容如下:
Learning English is easy & simple
随后将其提交到了本地develop分支。
我们又切换回master分支,并再次对hello内容进行了修改:
Learning English is easy or simple
这样,当我们将develop分支合并到master分支的时候,就会出现冲突提示如下:
Auto-merging hello
CONFLICT (content): Merge conflict in hello
Automatic merge failed; fix conflicts and then commit the result.
冲突出现的原因是,我们在develop分支和master分支上,都对hello文件的内容做了修改,这样当将develop合并到master时,Git就不确定究竟应该采用哪个修改。
解决内容冲突:
手动编辑冲突区域;
执行git add,将编辑提交到暂存区;
执行git commit,将编辑提交到本地仓库以解决冲突。
方法文件名修改造成的冲突,称为树冲突。比如,A用户把文件C改名为A,B用户把文件C改名为B,那么B合并这两个提交时,就会出现冲突:
解决树冲突:
git rm A
git rm C
git add B
git commit
即从本地仓库中删除A和C文件,然后再添加B文件并最终提交.
强制推送和强制合并:
-f参数
忽略文件:
如果你在本地版本库里,放入了仅供本地测试用的文件,但是你并不想将其推送到远程仓库,而且不想每次都被提醒你本地有未提交文件的话,就需要用到Git忽略文件提醒的功能。
在Git工作区的根目录下,创建一个特殊的.gitignore文件,把要忽略的文件名或者文件名的通配符填进去,然后将.gitignore提交到本地仓库,这样Git就会在你添加或者提交时,自动忽略这些文件。
忽略指定文件
HelloWrold.class
忽略指定文件夹
bin/
bin/gen/
忽略.class的所有文件
*.class
忽略名称中末尾为ignore的文件夹
*ignore/
忽略名称中间包含ignore的文件夹
ignore/
这篇关于2021-04-08的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南