Git常用命令总结

Git常用命令总结

Git是多人协作开发过程中很重要的一个工具,以下是一些Git常见的一些使用场景,后续会持续更新,欢迎大家评论交流,聊聊自己学习或工作中常遇到的场景~~

  1. 创建分支并推送到远程
bash 复制代码
//查看现有全部分支
git branch -a
//创建新分支(
git branch dev
//将本地新创建的分支推送到远程(远程同时有同名分支)
git push origin dev
  1. 修改分支代码推送到远程分支
bash 复制代码
//提交暂存区
git add .
//将暂缓区的内容提交到本地仓库
git commit -m "新增了testDevelop.txt文件"
//推送之前最好先拉取一遍
git pull origin develop
//将本地分支代码推送到远程(本地分支名与远程相同)
git push origin develop
//提交并创建分支  本地分支:远程分支(本地分支名与远程不同)
git push origin dev:dev
  1. 删除分支
bash 复制代码
// 删除本地分支
git branch -d localBranchName

// 删除远程分支
git push origin --delete remoteBranchName

注意:
a. 如果你还在一个分支上,那么 Git 是不允许你删除这个分支的。所以,请记得退出分支:git checkout master
b. 当一个分支被推送并合并到远程分支后,-d 才会本地删除该分支。如果一个分支还没有被推送或者合并,那么可以使用-D强制删除它。
  1. git基于某分支拉取新的分支
    Git三种方法从远程仓库拉取指定的某一个分支,可参考:
    https://blog.csdn.net/you18131371836/article/details/110404967
bash 复制代码
//git拉取某一指定分支代码到本地(dev为远程分支名)
git clone -b dev https://xxx/xx/xx
//在该分支基础上创建新分支
git branch test
//新创建的分支推送到远程
git push origin test
  1. 分支重命名
bash 复制代码
本地分支重命名(还没有推送到远程)
git branch -m oldName newName
bash 复制代码
//远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)
a. 重命名远程分支对应的本地分支
git branch -m oldName newName
b. 删除远程分支
git push --delete origin oldName
c. 上传新命名的本地分支
git push origin newName
d. 把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName


注意:如果本地分支已经关联了远程分支,需要先解除原先的关联关系:
git branch --unset-upstream 
  1. 查看分支关系图
bash 复制代码
gitk

注意:需要关闭才能继续输入命令
  1. 分支代码同步
    首先拿到代码提交的commit ID号(下面简称eid),有两种方式

bash 复制代码
(同步单条记录)
// 切换分支
git checkout dev(切换到需要同步的分支上,即当前该分支需要同步新的提交)
// 根据commit的id号挑拣修改
git cherry-pick eid
// 添加文件到暂存区(可以不用)
git add .
// 本地修改保存到本地仓库(可以不用)
git commit -m "说明说明"
// 推送挑拣下来的文件到远程(可以直接git push,前提是建立本地dev分支与远程dev分支建立关联)
git push origin dev
bash 复制代码
(同步多条连续记录:多个连续commit合并)
// 切换分支
git checkout dev(切换到需要同步的分支上,即当前该分支需要同步新的提交)
// 根据commit的id号挑拣修改
// 写法1:^表示包括左边的,即[did,fid]
git cherry-pick did^..fid 
// 写法2:不包括左边,即(did,fid],必须按照正确的顺序放置
git cherry-pick cid..fid 
// 推送挑拣下来的文件到远程
git push origin dev
bash 复制代码
(同步多个commit,没有连续与顺序要求)
// 切换分支
git checkout dev(切换到需要同步的分支上,即当前该分支需要同步新的提交)
// 根据commit的id号挑拣修改
git cherry-pick cid eid fid 
// 推送挑拣下来的文件到远程
git push origin dev
bash 复制代码
//如果同步错误,可取消之前的cherry-pick
git cherry-pick --quit

注意:
git cherry-pick 同步的是当前提交记录中的代码,就算你的同一个文件的版本1和版本2中还有其他差异代码也不会同步
  1. 建立本地分支与远程分支关联
bash 复制代码
// 切换到需要关联的本地分支
git checkout dev
// 建立本地dev分支与远程dev分支的关联,建立关键之后可以直接git push
// git branch --set-upstream-to origin/分支名
git branch --set-upstream-to=origin/dev
// 查看本地分支与远程分支的映射关系
git branch -vv
// 撤销本地分支与远程分支的关系
git branch --unset-upstream
  1. 合并分支
bash 复制代码
// 将dev分支合并到master分支
// 切换到master分支上
git checkout master   
// 把远程分支pull,及时更新
git pull origin master
// 把dev分支的代码合并到master上  
git merge dev      
// 查看状态    
git status     
//push到远程分支         
git push origin master 
  1. 查看提交日志
bash 复制代码
git log

注意:
当commit(提交)比较多,git log 的内容在一页显示不完整,满屏放不下的时候,就会显示冒号。
回车(往下滚一行)、空格(往下滚一页)可以继续查看剩余内容,出现(END)表示到显示最后了。
退出:英文状态下 按 q 可以退出git log 状态。
相关推荐
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio3 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。4 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie65 小时前
在IDEA中使用Git
java·git
晓理紫14 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿16 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
_OLi_1 天前
IDEA中新建与切换Git分支
java·spring boot·git
PyAIGCMaster1 天前
ubuntu下安装 git 及部署cosyvoice(1)
git
维__kxs76671 天前
小程序 + AI 自动直播:一部手机开启抖音挂载小程序流量主变现之旅
git·eclipse
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 天前
GIT GUI和 GIT bash区别
开发语言·git·bash