git 总结

2 篇文章 0 订阅

git 总结

之前只会git的常用操作,一旦遇到复杂的情况就要去搜索求助,总归不是长久之计,今天整理一下:


clone

常用:

$ git clone git://github.com/schacon/grit.git

不常用:

$ git clone git://github.com/schacon/grit.git mygrit

二者的差别就是 后者在克隆的时候,可以自己定义要新建的项目目录名称


commit

通常我们在git commit 操作之前,需要先执行git add ,但有时候这么做略显繁琐。Git 提供了一个跳过使用暂存区域的方式,只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。


log

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。看到了吗,每次更新都有一个 SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。

git log 后面可以跟很多参数,戳我查看

如果log太多 想合并 可以用 git reset --soft HEAD~n( n表示最近n次提交记录 )然后再统一提交。


撤消

这个是今天要记录的重点,也是工作中经常遇到的一些问题

修改最后一次提交

$ git commit --amend

有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 –amend 选项重新提交。

取消已经暂存的文件

如果已经用git add 加到了暂存区,该如何撤销呢? 使用git status 命令输出的时候,已经有了提示

(use "git reset HEAD <file>..." to unstage)

好吧,机智如你,肯定知道怎么做了。执行完这个命令之后 ,那个file就回到了之前已经修改未暂存的状态。

取消对文件的修改

如果觉得有些修改完全没必要,此时还没提交,该如何取消修改呢? 同样git status 命令给出了提示

(use "git checkout -- <file>..." to discard changes in working directory)

如果想取消多个文件 可以使用 git checkout .

这个命令是把之前的版本复制过来 重写修改过的文件,所以要慎重!

撤销单个文件的修改

如果不小心把一些不该改的xxx文件改掉了,而且还commit了,想撤销xxx文件,不影响其他已提交的文件,怎么办!
先用git log 查看xxx文件的修改记录,找出你需要回复的版本号

$ git log xxx文件路径

然后这里写图片描述
然后 再次提交就OK拉 哈哈哈


删除本地分支

$ git branch -d "分支名"

删除远程分支

$  git push origin : 分支名
or
$  git push origin --delete 分支名


----------

ignore 不生效的问题

# 此为注释 – 将被 Git 忽略

*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

有次做一个前后端没有分离的项目,后端给我配环境时改了两个xml文件,提交时我想忽略这俩文件,写入.ignore文件之后 发现并没有忽略~ why?
原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值