4.Git基本命令操作

1.git init         把一个目录变成Git可以管理的仓库 


2.git add/commit       将文件提交至Git版本库

   git add xxx.txt        完成对文件的跟踪(加入暂存区,为git commit做准备)

   git commit -m "xxx"    完成对文件内容提交至Git版本库

 eg:通过命令:echo 'Study Git Project Manager' > gitTest.txt 将内容写入新建的gitTest.txt文件中,该文件位于bi-report项目中

     

 在IDEA中看到为红色的,说明gitTest.txt文件并没有被加入到Git版本控制中来 


3.git log    查看历史记录(相当于IDEA中的Show History)

这样看历史,发现太多的话,可以加上--pretty=online参数,这样看着会方便点。

中途对gitTest.txt作出如下两次修改:

    第一次修改:追加   first modify gitTest.txt  至文件

    第二次修改:追加   second modify gitTest.txt 至文件


4.git reset       回退版本   

   当前版本是HEAD,上一个版本是HEAD^,上两个版本是HEAD^^,上100个版本则可以用HEAD~100表示

回退到上一个版本后,通过git log --pretty=oneline发现最新的那个版本已经没有了,我后悔回退到上一个版本怎么办?

      如果你没有关闭当前命令行工具,你可以知道它的commit id为6fed83eeaf9d2151cfea6a1921c3077ce4cf11bd,你可以通过id来进行恢复。

       如果你关闭了当前命令行工具,也不知道commit id是多少,那就没有办法回退到原有的最新版本了吗?使用如下的git reflog命令。


5.git reflog     用来记录你的每一次命令信息

找到commit id后,通过 git reset --hard 6fed83a 便可以解决4中的问题了


6.git status      显示工作目录和暂存区的状态

   ①想修改一下gitTest.txt文件     ②然后新增一个licence.txt,内容随机填写

   gitTest.txt已经在Git版本库中,licence.txt为新增文件(IDEA中通过颜色可以看出)

   


7.git diff     查看工作区和版本库中最新版本的区别

 情形:gitTest.txt文件,第1次修改   执行git add

                                      第2次修改   执行git commit -m '修改gitTest.txt文件'   

  相当于:将第1次修改放入暂存区,第2次修改只在工作区,执行git commit只是把暂存区数据进行了提交,第2次修改并未提交

明显gitTest.txt文件追加了2行,提交却显示修改1行,为什么?

       因为Git追踪的是修改,而SVN追踪的是文件。当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

通过git diff -- 文件名  便可以查看工作区与版本库中最新版本的区别

如果将第2次修改,也执行git add操作,再执行git commit命令提交后。通过git diff命令再次查看工作区与版本库中最新版本区别


8.git checkout       丢弃工作区的修改

有3种情形:

      ①第1次修改文件(工作区),不提交至暂存区;此时可通过git checkout命令,直接将工作区内容丢弃

      ②第一次修改文件,执行git add提交至暂存区;第2次修改,不提交至暂存区;执行git checkout命令,会回退到暂存区状态

      ③第一次修改文件(如:git rm <file>删除文件,会自动提交至暂存区,省去git add操作),发现改文件不需要删除,需要将暂存区数据回退;可以使用git reset HEAD <file>将暂存区数据回退,此时可通过git checkout回退至与最新版本库一致


      情形1:gitTest.txt文件,第1次修改,追加了一句不友好的话,不执行git add等操作,相当于只在工作区修改。此处通过git checkout命令,会直接将修改的内容丢弃。

  

       情形2:gitTest.txt文件,第1次修改,执行git add放至暂存区。第2次修改,追加了一句不友好的话,并没有执行git add,第2次修改只在工作区进行。此处通过git checkout命令,只会丢弃掉第2次修改的内容,回到添加到暂存区后的状态

       情形3:基于情形2,已经将第1次修改放至暂存区了,现在发现这个文件不需要修改,便决定将放至暂存区的内容也丢弃掉,该怎么解决呢?    ---- 使用命令: git reset HEAD 文件名

9.git rm     从版本库中删除文件

  情形1:只删除工作区文件,版本库中文件未做改动(在某些IDE中,如果直接删除文件,会直接将暂存区的文件也直接删除,如果通过git checkout命令,是无法还原回来的。诸如:IntelliJ IDEA)

 

情形2:删除版本库文件(执行git rm会提交至暂存区,需再次git commit才能提交至版本库,完成真正的删除操作)

10.git rm -r -f --cached ./     删除暂存区缓存

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扛麻袋的少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值