Git常用命令总结
Git是多人协作开发过程中很重要的一个工具,以下是一些Git常见的一些使用场景,后续会持续更新,欢迎大家评论交流,聊聊自己学习或工作中常遇到的场景~~
- 创建分支并推送到远程
bash
//查看现有全部分支
git branch -a
//创建新分支(
git branch dev
//将本地新创建的分支推送到远程(远程同时有同名分支)
git push origin dev
- 修改分支代码推送到远程分支
bash
//提交暂存区
git add .
//将暂缓区的内容提交到本地仓库
git commit -m "新增了testDevelop.txt文件"
//推送之前最好先拉取一遍
git pull origin develop
//将本地分支代码推送到远程(本地分支名与远程相同)
git push origin develop
//提交并创建分支 本地分支:远程分支(本地分支名与远程不同)
git push origin dev:dev
- 删除分支
bash
// 删除本地分支
git branch -d localBranchName
// 删除远程分支
git push origin --delete remoteBranchName
注意:
a. 如果你还在一个分支上,那么 Git 是不允许你删除这个分支的。所以,请记得退出分支:git checkout master
b. 当一个分支被推送并合并到远程分支后,-d 才会本地删除该分支。如果一个分支还没有被推送或者合并,那么可以使用-D强制删除它。
- 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
- 分支重命名
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
- 查看分支关系图
bash
gitk
注意:需要关闭才能继续输入命令
- 分支代码同步
首先拿到代码提交的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中还有其他差异代码也不会同步
- 建立本地分支与远程分支关联
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
- 合并分支
bash
// 将dev分支合并到master分支
// 切换到master分支上
git checkout master
// 把远程分支pull,及时更新
git pull origin master
// 把dev分支的代码合并到master上
git merge dev
// 查看状态
git status
//push到远程分支
git push origin master
- 查看提交日志
bash
git log
注意:
当commit(提交)比较多,git log 的内容在一页显示不完整,满屏放不下的时候,就会显示冒号。
回车(往下滚一行)、空格(往下滚一页)可以继续查看剩余内容,出现(END)表示到显示最后了。
退出:英文状态下 按 q 可以退出git log 状态。