日常git使用总结

自己画的git命令思维图

只是大概总结了一下,还在补充中
在这里插入图片描述

本地和repository建立联接

第一次 git push 加 -u ,会将本地的master与远程的master关联起来。

git init
git remote add origin repositoryUrl
git add . 
git commit -m "commit info"
git push -u origin master

重新设置仓库地址

git remote set-url origin repositoryUrl

本地分支与远程分支建立联接

本地分支newBranch(冒号前面)推到远程分支newBranch(冒号后面),若远程没有newBranch分支,会自动创建。

git checkout -b newBranch
git push origin newBranch:newBranch

merge和rebase的区别

  • 合并分支,merge: resolve conflict , git add . 和 git commit -m ‘fix conflict’ 后,会新产生一个commit;rebase:resolve conflict,git add . 和 git rebase --continue,不会产生新的commit。

  • merge不会保留merge分支的commit。rebase会为原分支上每一个提交创建一个新的提交,重写了项目历史。
    merge:
    merge picture
    rebase:
    rebase picture

  • git merge --no-ff(fast-farward merge),会直接将主分支指向需要合并的分支。使用–no-ff参数后,在主分支上生成一个新节点。
    fast merge picture

cherry-pick

将指定的提交(commit)应用于其他分支上。
将分支上的commit A合并到master上:

git checkout master
git cherry-pick hashA

合并多个commit:

git cherry-pick <HashA> <HashB>
// 合并后不包含commit A
git cherry-pick A..B 
// 合并后包含commit A
git cherry-pick A^..B 

submodule

  • 添加第三方库
    执行后会生成两个文件.gitmodules和第三方仓库文件
git submodule add sshUrl
  • 第一次拉去代码后,初始化第三方库
git submodule init
git submodule update
  • 批量更新第三方库
    .gitmodules会根据path寻找所有的三方模块, 并在每一个模块中都执行 foreach后的命令。
git submodule foreach git submodule update
  • 删除第三方库
git rm <submodule-name>

同时删除本地和远程分支

-d 的全写是–delete,当前分支必须从上游分支完全合并才能删除
-D 的全写是–delete --force,强制删除,无论当前分支是否合并

// 远程
git push --delete <remote_name> <branch_name>
// 本地
git branch -d <branch_name>

撤销和修改commit

// 会保留源码,只是将commit和index信息回退到了某个版本,默认--mixed
--mixed
// 源码也会回退到某个版本,commit和index都会回退到某个版本
--hard
// 保留源码,只回退到commit信息到某个版本,不涉及index的回退,如果还需要提交,直接commit即可
--soft
  • 代码回滚到某次提交
git reset <commit_id>
  • 撤销最新一次提交
// 两者等价
git reset HEAD~
git reset HEAD~1
  • 修改commit信息
    修改本地commit信息,还未提交到远程:
git commit --amend -m 'new commit message'

修改远程commit信息:
可以通过git push -f去强制覆盖,但是一般禁用,强制覆盖操作太危险
推荐通过rebase的方式去修改commit信息

// X表示落后于HEAD的提交次数,不填默认为1
git rebase -i HEAD~X

stash暂存

// 讲改变暂存
git stash
// 将暂存第一条推出
git stash pop
// 清空所有暂存
git stash clear
// 现实暂存列表
git stash list
// 删除第一条暂存
git stash drop stash@{0}

重命名分支

// 重命名某分支
git branch -m <old_name> <new_name>
// 重命名当前分支
git branch -m <new_name>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值