Git 常用命令记录点


同步于简书:https://www.jianshu.com/p/83a9c3970e5a

1. Git创建一个分支:

  1. 假设我现在在Develop分支上:
// 那么通过这行命令,我就在本地新建了一个develop_1分支
git checkout -b develop_1

2. 将该分支推送到远程:

git push -u origin develop_1

解决Enter passphrase for key '/Users/mac/.ssh/id_rsa':的问题
出现这个问题是因为在配置公钥的时候passphrase 设置了密码的解决方法:
打开终端:
ssh-add -K /Users/mac/.ssh/id_rsa        ---- 注意:mac为你的电脑的用户名
然后按enter, 输入密码,之后会出现你的邮箱账号,则为成功,下次pull或者push的时候就可以不用再输入密码了

这样,其他人通过

// 获取远程更新,就可以下载clone该条分支的代码,然后合作开发一些东西了
git fetch origin

// 更新远程分支
git remote update origin --prune

git remote update origin -p


3. 删除一条本地分支和其对应的远程分支

// 首先删除本地分支
git branch -d develop_1

这样就删除了本地的develop_1分支,那么接下来删除其对应的远程分支:

git push --delete origin develop_1

这样就完成了


4. 在master主干,合并develop分支:

git merge --no-ff -m "merge with develop" develop

5. 清理远程分支,把本地不存在的远程分支删除

git remote prune origin

6. 将远程分支live_video 获取到本地 live_video

git checkout -b live_video origin/live_video

7. 在一个分支之上,打标签操作

git tag v1.0

即打了一个v1.0的标签.


8. tag是对历史一个提交id的引用

使用git checkout tag即可切换到指定tag,例如:

git checkout v0.1.0

9. 切换到tag分支

历史记录会处在分离头指针状态,这个修改是很危险的,在切换回主线时如果没有合并,之前的修改提交基本都会丢失,如果需要修改可以尝试

git checkout -b branch tag

创建一个基于指定tag的分支


10. 推送本地分支tag到远程

git push --tags

11. 删除一个本地tag

git tag -d v1.1

12. 删除远程tag

git push origin --delete tag V1.1

13. Git忽略规则

git中忽略掉某文件不提交,可以修改.gitignore来实现,每一行都是一个忽略规则,举例:

  1. #此为注释 – 将被 Git 忽略
  2. *.sample # 忽略所有 .sample 结尾的文件
  3. !lib.sample # 但 lib.sample 除外
  4. /TODO    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
  5. build/    # 忽略 build/ 目录下的所有文件
  6. doc/*.txt  # 忽略 doc/notes.txt 但不包括 doc/server/arch.txt

14. .gitignore规则不生效的解决办法

把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交

// 放心使用如下几行命令,不会删除你什么代码的;)
git rm -r --cached .
git add .
git commit -m 'update .gitignore'

15. A分支合并B分支部分文件

若A分支需要合并B分支的文件file-01,其他B分支文件不想合并到A,在A分支下执行如下命令即可

git checkout B file-01 

// 这里在写个更具体的,如果我在fixbug_179分支上,需要合并dev_180分支上audio文件夹下所有文件
// 注意是全路径才会合并成功
git checkout dev_180 /Users/aaron/Desktop/Work/MLY/code/miliyo/libcomm/src/main/java/com/cc/comm/audio/

16. 说一种场景

Dev分支上开发,结果代码写在了Master分支上,首先把所有修改都git add进暂存区不要Commit,然后:

// 把暂存区内的修改存储起来
git stash                    
// 切换到正确的分支
git checkout dev    
// 将存储的修改取出来
git stash pop                

如果已经commit了,则

git reset HEAD^ 

17. 如何恢复删除的部分文件

// 此句恢复 liblive/src/main/jniLibs/armeabi-v7a 这个目录下所有删除的文件
git checkout -- liblive/src/main/jniLibs/armeabi-v7a/

// 此句恢复 liblive/src/main/java/com/cc/live/xyz.java 单个xyz.java 文件
git checkout -- liblive/src/main/java/com/cc/live/xyz.java

18. 如何更新本地关联git远程地址

项目远程地址变化了,如何更新本地关联git远程地址

// 1. 先删除之前的仓库地址
git remote rm origin

// 2. 进行设置仓库新地址:url是新git地址
git remote add origin url

// 3. 重新拉取一下
git fetch 

// 4. 重新关联远程地址
git branch --set-upstream-to=origin/master master

19. Merge到中途,想放弃合并

you need to resolve your current index first

git reset --merge

参考链接

  1. https://www.cnblogs.com/zhangxiaoliu/p/6008038.html
  2. https://www.cnblogs.com/xulingfeng/p/5864041.html
  3. https://edison-cool911.iteye.com/blog/2325747
  4. 学习git最佳教程,没有之一
  5. http://marklodato.github.io/visual-git-guide/index-zh-cn.html
  6. https://learngitbranching.js.org/
  7. http://rogerdudler.github.io/git-guide/index.zh.html
  8. https://www.cnblogs.com/kevingrace/p/5690241.html
  9. http://www.ruanyifeng.com/blog/2012/07/git.html
  10. https://git-scm.com/book/zh/v2 (个人感觉这篇是最全的)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初心一点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值