GIT常用命令

  • git rebase
      D--E 			test
A--B--C--F			master

git rebase test 在master分支上执行

A--B--D--E--C'--F'

git rebase 和 merge 差异

      D--E				test
A--B--C--F--G  	master

产生新的节点(G)

  • git fetch
    git fetch origin remote-branch:local-branch
    git fetch origin remote-branch # 保存在 .git/FETCH_HEAD
    git pull # git fetch && git merge
    git pull origin master
    = git fetch origin master # HEAD 未变
    git merge FETCH_HEAD # HEAD 改变
    git fetch orgin # 拉取远程所有分支到本地

  • git rev-parse
    解析引用或其他参数,返回哈希值
    例如: git rev-parse “branch-name”
    git rev-parse “refs/remotes”
    git rev-parse “origin/master”
    选项 --verify # 验证引用是否存在

  • git checkout [branch name / commit]
    清除工作区的修改
    选项 -orphan # 无历史commit的分支
    -b # 创建一个新的分支
    -B # 分支不存在是创建,否则被重置
    -f # 忽略工作区和暂存区修改,强制检出
    git checkout – file | path
    git checkout -b master origin/master
    从远程分支检出到本地分支并创建分支

  • git branch
    选项
    -a # 查看本地和远程分支
    -d # 删除分支
    -D # 强制删除,有提交未合并也会删除
    -r # 查看远程分支
    -m oldbranch newbranch # 重命名,-M 强制
    -v # 分支的最新一次提交
    -vv # 分支对应的远程分支
    –merged # 哪些已经合并到当前分支(即直接分支)
    –no-merged
    git push origin --delete 远程分支 # 删除远程分支
    git branch 分支名 # 创建分支
    git branch 分支名 引用 # 创建分支与引用关联

  • git clean [option] [–] <path>
    选项
    -d # 除去未跟踪文件及目录
    -f # 强制清除,尽管clean.requireForce为True
    -i # 交互式
    -n # 不实际删除,只显示会做什么

  • git rev-list
    列出一个提交之前的所有提交:git rev-list <commit-id>,其中 是某个特定提交的标识符。

    列出一个分支的所有提交:git rev-list <branch-name>,其中 是分支的名称。

    列出一个范围内的所有提交:git rev-list <commit-id-1>…<commit-id-2>,其中 <commit-id-1> 是起始提交的标识符,<commit-id-2> 是结束提交的标识符。

  • git cherry-pick
    A
    B D
    C

    • cherry-pick B.C
      A
      D
      B’
      C’
      会产生新的commitId
    • git cherry-pick feature # 将feature分支的最新一次提交转移到当前分支
    • git cherry-pick A B # A和B
    • git cherry-pick A…B # A到B不包含A
    • git cherry-pick A^…B # A到B包含A
    • 选项
      • -s:提交信息末尾追加操作者签名
      • -e: 打开外部编辑器,编辑提价信息
      • -n: 只更新工作区和暂存区,不产生新的提交,不commit,HEAD不变
      • -x: 提交信息添加cherry pick from commit
      • –abort:
      • –contiue:
      • –quit:
    • ^: 代表父提交,后跟数字表示第n个父,mater^1
    • ~: 相当于连续的n个"^"
    • git cherry-pick -m 1
      • 1: merged into
      • 2: merged from
  • git reset
    丢弃暂存区修改,回到节点
    * --soft: 不删除文件,从本地仓库回到暂存区,工作区无变化
    * --hard: 删除文件, 丢弃暂存区修改,并删除文件
    A:HEAD
    vim four.txt
    vim five.txt
    vim six.txt
    add four.txt
    git commit --message “add four.txt”
    git add five.txt
    git reset HEAD^ --soft

    changes to be committed:
    						four.txt
    						five.txt
    untracked files:
    				six.txt
    

    git reset HEAD^ --hard

    删除four.txt 和 five.txt
    untracked files:
    				six.txt
    

    git reset – five.txt --soft # five.txt 从暂存区到工作区

  • HEAD 分离
    一般情况:HEAD指向分支,分支指向节点
    分离情况:HEAD指向节点

    git checkout
    HEAD 分离到commit id上。
    代码push只能通过分支推送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值