美文网首页
git相关实战技巧

git相关实战技巧

作者: haiyangjiajian | 来源:发表于2016-10-19 12:14 被阅读0次

在工作之中使用git,除了常用的clone,add,commit,push,fetch,pull,merge等还会经常出现一些其他需要解决的问题,现在将其总结下。

可以在我的博客http://haiyangjiajian.com/交流更多相关内容。

1. 忘记添加.gitignore

GIT新手最容易犯的一个错误就是没有添加.gitignore,而把不该上传的东西上传了, 而GIT老手有时会因为在规则里面写了个.*而导致.gitignore没有加入到版本控制当中, 事后才发现,但此时项目中已充斥了“垃圾”。

此时项目管理者才追悔莫及,修改.gitignore并提交到版本控制当中。 但大错已铸成,新添的.gitignore不会影响已经加入到项目中的文件,GIT老手此时也可能没有什么好办法, 只能把不该有的东西手动删除掉,再重新提交。但更麻烦的是,这些“垃圾”可能还有用, 如Java项目中依赖的一些*.jar库文件,直接删了会出问题,要在修好项目后重新加回来。 如果只有几个文件还好,如果成百上千,这样操作,一天都不用干别的了。

但问题总会有聪明办法解决。GIT中用git rm --cached xxx可以在不动项目当前工作空间的情况下, 将文件从当前(未提交)版本中移除。如此而来简单方法就出来了:

git rm -r --cached .
git add .
git commit -m ".gitignore is now working"

参照这里

2. git 取消push

方法1:

  1. git reset --hard HEAD~1
  2. 然后再使用git push origin "your branch name" --force将本次变更强行推送至服务器。这样在服务器上的最后一次错误提交也彻底消失了。

方法2:

  1. 在本地git revert,覆盖掉上一次的commit
  2. git push origin "your branch name"

3. git reflog

git reflog/git log -g记录每次修改head的操作,可以查看所有历史修改记录,然后通过git reset命令进行恢复

4. git merge和git rebase

如果需要merge远程分支的东西,尽量不要用git pull。 可以使用:

git fetch origin

git rebase origin/master // 可以理解为:将服务器master分支映射到本地的一个临时

//分支上,然后将本地分支上的变化合并到这个临时分支,然后再用这个临时分支初始化本地分

//支

5. git stash

git stash 将未commit改变缓存,不保存新加的文件

git stash list 展示栈列表

git stash apply {stash@{2}} 应用某次栈中的内容

git stash pop 应用栈顶内容并弹栈

git stash clear 清空队列

6. git revert和git reset

git revert是用一个新的提交取消掉了之前的一个错误提交

git reset取消掉最近一次commit后add的

git reset []回到那一次commit,并且将撤销掉的文件的提交恢复成未提交的状态

git reset --hard 回到那一次commit,所有过程中的文件都没了

7. git自动补全

参见github

8. 单独统计每个人的增删行数

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

相关文章

  • git相关实战技巧

    在工作之中使用git,除了常用的clone,add,commit,push,fetch,pull,merge等还会...

  • git相关技巧

    1.查询某一文件的修改记录:git log 。 利用git log 接文件名来获取这个文件的所...

  • 数据可视化.js

    1.相关资料 慕课网echarts3.0入门与实战git地址

  • Git常用命令

    收集、记录、整理一些 Git 相关使用技巧。 git config 查看配置信息 命令参数 --list,简写 -...

  • git基本命令

    git常用命令 git丢弃更改相关 git连接远程仓库相关 git切换分支相关 git stash相关 git标签相关

  • github项目

    有意思,高质量和自己目前学习工作密切相关的开源项目的集合 git的使用技巧: 开发过程中会经常用到的git的小技巧...

  • Git实战使用技巧总结

    本文目录 1.克隆分支到本地 2.Git 分支相关问题 3.解决冲突 4.版本回退=>撤销上一次的提交 5.git...

  • git拉取单个目录(示例代码)

    简介 这篇文章主要介绍了git拉取单个目录(示例代码)以及相关的经验技巧 有时git库里的东西比较多,我们只希望...

  • 【Git】PR:让开源项目merge你的代码

    前言:本文旨在记录Git的pull request实战以及相关的技术好文的传送门(≧∇≦)本文假定你已经有gith...

  • IDEA中git使用

    参考: 在IDEA中实战Git IntelliJ IDEA下的使用git

网友评论

      本文标题:git相关实战技巧

      本文链接:https://www.haomeiwen.com/subject/fllxuttx.html