• Git 学习笔记


    实用功能

    以图结构展示 commit 之间的关联

    git log --all --graph --decorate [--oneline]
    
    • 1

    切换当前版本

    git checkout commit_hash
    
    • 1

    比较版本差异

    git diff commit_hash1 commit_hash2 file_name
    
    • 1

    丢弃更改

    git checkout file_name
    
    • 1

    分支相关

    分支可以视为 commit 的引用,而 HEAD 则是当前 commit。
    查看所有分支

    git branch [-vv]
    
    • 1

    创建分支

    git branch branch_name
    
    • 1

    创建新分支并切换到该分支

    git checkout -b new_branch
    
    • 1

    合并分支到当前分支

    git merge branch_name
    
    • 1

    合并失败后执行:

    git merge --abort
    
    • 1

    解决完冲突后继续合并:

    git merge --continue
    
    • 1

    远程仓库

    添加远程

    git remote add <name> <url>
    
    • 1

    推送到远程,创建或更新远程分支

    git push <remote> <local branch>:<remote branch>
    
    • 1

    克隆

    git clone <url> <folder name>
    
    • 1

    绑定当前本地HEAD指向的分支与远程分支:

    git branch --set-upstream-to=<remote>/<branch>
    
    • 1

    拉取远程分支,将远程仓库更新的内容同步到本地,但不影响本地分支的内容,需要手动 merge

    git fetch <remote>  或者  git pull
    
    • 1

    其它trick

    当更新了一个文件的多处代码时,如果只想 add 其中一些更改,可以使用交互模式:

    git add -p file_name
    
    • 1

    在该模式下,程序会询问是否保存所有更改,输入 s 可以将这些更改进行划分,然后逐一选择是否保存(y or n)。
    保存后,通过

    git diff --cached
    
    • 1

    查看差异时,只会看到保留的那部分更改。

    当想要知道谁更新了某行代码时,可以通过

    git blame file_name
    
    • 1

    查看所有更改对应的 commit、作者和注释。在里面找到想要的 commit 后,复制其哈希值,然后通过

    git show commit_hash
    
    • 1

    查看详细内容。

    做出一些更改后想要隐藏起来:

    git stash
    
    • 1

    复原:

    git stash pop
    
    • 1

    当你有一千次以上的提交后,发现出了Bug,你可能想一步步回退 commit 然后重新执行单元测试,但如果问题出在第一次 commit 上,这就很烦了,下面的命令可以自动完成这样的工作:

    git bisect
    
    • 1
  • 相关阅读:
    Go的接口,闭包,异常捕获
    js 小数相乘后,精度缺失问题,记录四舍五入,向下取整
    云安全之HTTP协议介绍
    【HTML悬浮提示】
    Spring框架(六):SpringTransaction事务的底层原理、xml配置和注解配置
    动物园规则怪谈【逻辑】
    nodejs项目实例博客管理系统
    并查集——奇偶游戏(带边权和扩展域做法)
    JavaSE运算符与C语言的差异
    第七天:gec6818开发板QT和Ubuntu中QT安装连接sqlite3数据库驱动环境保姆教程
  • 原文地址:https://blog.csdn.net/Ingsuifon/article/details/125461566