Git常用经验

Git

显示单次commit的改动内容
git show commit-id
git show HEAD~
什么都不带的时候默认显示最近的一次
git show

patch相关

  • 生成patch
    git format-patch HEAD^
  • 应用patch,保留commit信息
    git am file
  • 打patch,但是不保留commit信息
    git apply file

git log特定搜索

  • 搜索特定的作者
    git log --author name
  • 搜索特定的title
    git log --grep title
    *只查看和某个文件相关的git log
    git log filename

git stash的用法

详见git-stash用法小结
常见情景:在git pull的时候提示有本地未保存的修改,此时开发到一半不想要提交也不想删除的时候
git stash 把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录
git stash list 查看现有的stash目录
git stash pop 应用之前缓存的最近一个记录
谨慎使用
git stash drop <stash@{0}> 删除某一个指定的stash
git stash clear删除所有缓存的stash

github fork 出的仓库怎样与原仓库保持一致

  1. git remote -v 查看远程库地址;

  2. git remote add upstream XXXXXXXXXXXXXXX.git //upstream 设置原仓库的名字,后面是原仓库的地址;

  3. git fetch upstream //抓取原仓库的修改文件

  4. git checkout XXX // 切换到需要合并的本地仓库的本地分支。

  5. git merge upstream/dev //将原仓库的Dev 分支与本地仓库的当前分支合并

  6. git push origin XXX_branch //将当前仓库的本地分支推送到远程分支

git 如何修改已经提交到repo的commit

利用交互式rebase

  1. git rebas1. e -i HEAD~N //N是你要修改的倒数第几次commit

  2. 修改打开的文档,类似于这样

    pick abcdef1 Commit message 1
    pick abcdef2 Commit message 2
    pick abcdef3 Commit message 3

    如果只修改commit message, 将对应的pick改成reword,
    如果要修改code将pick改为edit
    如果要合并多个commit,保留最近一个为pick,其他的改为squash

  3. 保存修改

  4. git rebase --continue

  5. git push origin branch-name -f //强制推送,注意要非常小心!

git revert 单个commit

如果想要撤回之前的某个commit直接执行
git revert <commit-id>

posted @ 2024-10-16 15:27  奋然  阅读(4)  评论(0编辑  收藏  举报