【精华】git常用命令及操作速览

文章目录

    • git配置
      • 基本配置设置与查看
      • 代理设置
    • 与远程分支相关
      • 查询本地分支关联的远程分支
      • 更新远程分支
    • git 基础:
    • 项目开发分支合并操作流程
    • git diff详解:
    • 案例分析
    • 远程分支

git配置

基本配置设置与查看

  • 查看git全局配置
git config --global -l

代理设置

设置git clone代理:
如果发现你在用git clone下载代码的时候奇慢无比,你可以尝试配置代理:

git config --global http.https://github.com.proxy socks5://127.0.0.1:1086
git config --global https.https://github.com.proxy socks5://127.0.0.1:1086

将后面的服务器地址和端口号换成你的代理服务器地址和端口号即可。

取消设置:

git config --global --unset http.proxy
git config --global --unset https.proxy

与远程分支相关

查询本地分支关联的远程分支

git branch -vv

更新远程分支

场景:远程更新了新的分支,本地还没有:

git fetch

TODO:
git测试:
1、测试如何关联远程?
2、测试如何查看远程分支与本地分支关联情况?
3、测试推送本地分支时,如果没有事先进行关联,推送会成功吗,能推送到指定分支吗?能拉取指定分支进行合并吗?

查看本地分支关联(跟踪)的远程分支之间的对应关系,本地分支对应哪个远程分支
git branch -vv

如果没有做关联,使用git push需要指明远程分支名,如:
git push origin zhanghaiming-dev
如果事先使用:
git br --set-upstreamzhanghaiming-dev origin/zhanghaiming-dev
就可以直接使用:
git push
或者在push的同时使用set-upstream,push的同时进行关联:
git push --set-upstream origin zhanghaiming-dev
其他查看git远程分支状态命令:
git remote show origin
https://www.jianshu.com/p/526eb3eec83e

git 基础:

工作目录、index暂存区、repository提交历史

项目开发分支合并操作流程

在需要将自己开发的分支(假设为dev)合并到主分支master之前,

首先切换到master分支,git pull拉取最新代码,

然后回到dev分支,在dev分支的基础上建立一个merge分支用于合并以及解决冲突用,

然后git merge master,此时在merge分支上产生合并并解决冲突,

此时merge分支为最新分支,

回到master上,git merge merge,即将master更新到merge分支状态,完成合并;

回到dev分支,git merge merge,即将dev也更新到merge分支状态,因为merge分支为合并最新状态,此时dev和合并后的master分支一致;

继续在dev分支上进行开发。

git merge vs git rebase:

https://segmentfault.com/a/1190000012897637?utm_source=sf-related

git工作流:

https://www.jianshu.com/p/b357df6794e3

分支合并常用命令:

git diff lidar_lane --stat

git diff lidar_lane -- perception_alg/lidar_lane/include/data_center.h

git diff详解:

git diff:

git reset详解:

https://www.4spaces.org/git-revert-reset/

https://www.pianshen.com/article/47481163923/

案例分析

1、如何实现在自己分支上开发,始终保持自己分支与远程分支原有的地方相同,远程分支有人更新的地方在我开发的分支上也更新,但保持我的分支新增加的内容仍然保留?

git co master
git pull
git co my_dev
git co -b my_dev_merge
git merge master ## 将我开发的分支与master同步,此时如果修改同样地方,应该会发生冲突,解决冲突,保留我新增的,确定哪些是远程更新的
git co -b my_dev_merge_lite ## 创建一个精简版分支删除掉不想推到远程的修改,保证在远程上体现最小修改
git co master
git merge my_dev_merge_lite
git push

2、头指针分离案例

在dev分支下正常开发,commit了一些历史记录,如果想退回到过去的某一次提交进行开发,但是不想丢掉已经提交的历史,就不能用git reset,可以用git checkout,但此时就会出现头指针分离;

此时可以正常在分离指针的情况下进行开发,commit,然后在切换回dev分支时,会提示:

警告:您正丢下 1 个提交,未和任何分支关联:

  91d200a add new line

如果您想要通过创建新分支保存它,这可能是一个好时候。
如下操作:

 git branch <新分支名> 91d200a

切换到分支 'test'

此时只需要按提示执行:

git branch new_branch 91d200a

就可以建立一个新的分支跟踪刚才的修改;

本案例需求正确步骤:

直接在指定commit_id的地方新建一个分支,然后切换过去即可

git branch new_branch 
git checkout new_branch

3、合并冲突撤销

产生冲突后还没有进行提交,可以直接执行:

git merge --abort

恢复合并前状态;

或者直接使用git reset --hard 回退到指定位置;

远程分支

https://kuang.netlify.app/git/git%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93.html

  • 切换到远程分支

    本地没有任何远程分支,远程有dev分支,创建一个dev本地分支与远程dev分支关联:

    git co dev
    或
    git checkout -b dev origin/dev
    
  • 创建远程分支

    将本地dev分支创建一个远程分支并推送:

    git push --set-upstream origin dev
    或
    git push origin dev
    
  • 如何删除远程分支

    git push --delete origin branchName
    
  • 删除本地dev分支与远程分支的关联

    git co dev
    git branch --unset-upstream
    
  • 如何回退远程分支

  • 如何查看领先的提交与修改

你可能感兴趣的:(开发笔记)