嚴華 发表于 2025-2-17 22:53:23

1-11 git操纵留意事项

git底子学习参考:Git HEAD、HEAD^和HEAD~1之间的区别是什么|极客教程
git 操纵流程图
https://i-blog.csdnimg.cn/direct/b8d9d70bf3b145299aa7007042613e0c.png
以上的图对应git的三大件操纵:分别是git add,git commit, git push,记住push之前需要先git pull 同步一下远程的分支。
1-1 情况一

注:改动代码文件后,文件还停顿在工作区,没有提交到暂存区,对应的是下图所示的阶段,这和时候,代码想要不要,需要利用该下令进行管理:git chaekout -- 文件路径,我修改了当前main文件,添加了一下的文字测试该下令。
https://i-blog.csdnimg.cn/direct/227f6c8048574aac9913236e698f6a96.png
https://i-blog.csdnimg.cn/direct/f7b397f2ec1c481397ad52a04fcf63bb.png
https://i-blog.csdnimg.cn/direct/67f023715d6742648bb235ef08b95cf4.png
git chaekout -- 文件路径【git caeckout -- main.c 】 
https://i-blog.csdnimg.cn/direct/c4a46f9f138149c2b1a2b3fac2a8f75d.png
https://i-blog.csdnimg.cn/direct/f57a96a86d6447929b56d9d1685346c8.png
利用图形化工具进行操纵:
重新再文本中添加内容 
https://i-blog.csdnimg.cn/direct/8ed76dfa65db4fb0b21f1137c9c32afb.png
https://i-blog.csdnimg.cn/direct/444792cec0cf498aa1ba73220122c97f.png
https://i-blog.csdnimg.cn/direct/30a95d7b1fa34288946a628fe630edbe.png
......
1-2 情况二

文件已经被提交到暂存区,如何回到原来的状态先利用git reset HEAD +路径,然后再利用git checkout "路径",具体操纵如下所示:
https://i-blog.csdnimg.cn/direct/cb9c84e2181a4d87a566b85557f0a73c.png
git reset HEAD main.c 
https://i-blog.csdnimg.cn/direct/bfb45dd4151d4edbae034601d6e460c4.png
 git checkout -- main.c
https://i-blog.csdnimg.cn/direct/2681d6fa453d4849a5189e6ed740883e.png
这个时候看到之前添加的文件没有了 
https://i-blog.csdnimg.cn/direct/8372ae4b42cd4ad895ea3d73aa52eabe.png
1-3 情况三

如果已经将文件提交到本地仓库git commit -m "提交描述",如果要返返来原来的状态,那么需要利用git rest hard + 提交log/maxed +提交记录 / soft + 提交记录,下面来讲述一下这三者之间的差别
git rest --hard  +commit     ----> 对应的本地仓库----> 暂存区----> 工作区,三者之间是一致的,一旦回滚到上一个版本,这两个版本之间的代码改动就全部没有了,如果利用git reset --maxted那么代码会被存储在生产基地的,改动的代码还是会存储在工作区中,然后暂存区和本地仓库是没有的,如果利用git rsset --soft 的话会将代码回滚到暂存区这边
接下来实行一下这几个操纵:先来第一个操纵git reset hard + commit号码(想要回到哪一个版本就是回到哪一个版本提交的号码)
git log  检察体检的commit号码:
https://i-blog.csdnimg.cn/direct/a47b62cb3da84da8a1ed0d80f45d581e.png
https://i-blog.csdnimg.cn/direct/993ce10c4d334a7bb0fa25def8f306f4.png
可以参考文章:版本回退:git reset --hard下令 - 李小菜丶 - 博客园
https://i-blog.csdnimg.cn/direct/47a792cc7d694f98926b2537f02b6a9b.png
将文件一路提交到本地仓库中【git add】,也就是本地船埠【git commit】,海外船埠【git push】
https://i-blog.csdnimg.cn/direct/fea03c395b054a51be807623f450f8e6.png
指令: git reset --hard 59ce3a3
https://i-blog.csdnimg.cn/direct/72c835042a844fc1bbbbe7d1f3c20e5f.png
回退版本到提交前的状态: git reset --hard 59ce3a33306015fdd847ea78ce56b0693092dd57
https://i-blog.csdnimg.cn/direct/8ba4f0dd27ff493983cbd43eb897d71d.png
添加的文本不见了
https://i-blog.csdnimg.cn/direct/17ae915afecf4a3f878b4f9c2ba692f1.png
代码的提交记录也不见了!!! 
git reset --maxed:还是修改文件给文件添加部门内容,回滚的内容本地仓库,暂存区是没有的但是在工作区中还是有的。利用git status看是赤色的可以验证这个操纵
https://i-blog.csdnimg.cn/direct/b377c54158be4aabaf5c14483f99908f.png
https://i-blog.csdnimg.cn/direct/08f2958909cb4184911a7d887d853e73.png
https://i-blog.csdnimg.cn/direct/07a9eb78b76e4b3fb689a5de88b69e57.png
git log --oneline 检察汗青版本记录
https://i-blog.csdnimg.cn/direct/a58aa53573144831b759c94073539118.png
git reflog 检察汗青版本记录
https://i-blog.csdnimg.cn/direct/ad5d34ba53ff44439688435b2858d72a.png
https://i-blog.csdnimg.cn/direct/ebd36ec9ba9d4c938168b736b8dd8f7a.png
# 1.比对工作区与暂存区中文件的差异   git diff readme.txt

# 2.比对暂存区与本地版本库中文件的差异 git diff --cached readme.txt https://i-blog.csdnimg.cn/direct/a40c772f3fbd46af8ad0b17259eaa61e.png
现在可以看到暂时没有差异
https://i-blog.csdnimg.cn/direct/ff93c2075c7f4c0a8f034e0e731e907b.png
回退版本:git reset --maxed + commit-id
 git reset --maxed 59ce3a3
https://i-blog.csdnimg.cn/direct/ba2e313fec364da1a317a93b13964b6c.png
git status 检察文件状态,找工作区中是有的,但是在暂存区,本地仓库中是没有的
https://i-blog.csdnimg.cn/direct/d34034f68325457390844fe060cfb1f0.png
git reset --soft 会回到暂存区但是本地仓库和工作区是没有的,这里就不做演示了
https://i-blog.csdnimg.cn/direct/dfbc065d63c64cd392495bbed7e529a2.png
后面将探索图形化界面的操纵方式......

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 1-11 git操纵留意事项