git工作中的使用技巧

1.现在的工作空间太乱了,工作到一半,临时插需求。如何获得一个干净的工作空间?

git reset --hard HEAD 使用这条命了,会使你的工作区和缓冲区和HEAD保持一致,原来的工作区的修改和缓存区的修改都不会保留,虽然能得到一个干净空间,但是一条很危险的命令。

应该使用git stash命令将工作区和缓存区的内容储藏起来,当完成临时的需求后,再使用git stash applygit stash pop恢复。

2.从Git历史中删除一个文件,比如有敏感信息(私钥,内网ip等)或者不需要版本控制的超大文件

git filter-branch --tree-filter 'rm -f passwords.txt' HEAD

3.上一个的commit的message打错字了,怎么修改

git commit --amend -m ”Fix bug #42“

如果需要修改更早的commit的信息,怎么做?

git rebase -i [需要更改的commit的父SHA]在交互式环境下修改。

4.追溯一个指定文件的历史修改记录

git blame [filename]

5.代码有bug,commit很多次了,到底是哪一次修改把bug引入了?

git bisect start [终点SHA] [起点SHA]

git bisect good标记正确,git bisect bad标记错误,直到成功找到出问题的那一次提交为止。这时,Git 会给出如下的提示。

XXXX is the first bad commit

6.提交的版本有bug,怎么回退版本。

方法一:使用git revert HEAD,前提是工作区和暂存区是干净的,新增一次提交,抵消上一次的变化,不会改变历史,首选方式,没有任何丢失代码的风险。

方法二:git reset [SHA],丢弃部分提交,默认暂存区清空,工作区不变动,使用了git reset --hard[SHA]使工作区的文件回到以前的状态。

7.改写代码,发现还是原来的好,还没有commit时,撤销工作区的修改

git checkout -- [filename]

两种情况:

1.修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态。

2.已经添加到暂存区后,撤销修改就回到添加到暂存区后的状态。

8.撤销暂存区已经add的文件

有以下三种方法:

  1. git reset HEAD [filename]
  2. git rm --cached [filename]
  3. git reset [filename]

9.本地有A_branch分支,远程没有A_branch分支

当你在A分支push的时候会报错,同时会有提示:git push --set-upstream origin A_branch,即可以完成远程新建一个A_branch分支,同时也会push上去。

10.远程有B_branch分支,本地没有B_branch分支

第一步:git fetch,获取远程新建的分支;

第二步:git checkout -b B_branch origin/B_branch 本地新建分支并和远程分支关联。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值