当前位置: 首页 > news >正文

git常用命令和开发常用场景

git命令

git init
创建一个空的git仓库或者重新初始化已有仓库
git clone [url]
将存储库克隆到新目录
git add 
添加内容到索引
git status
显示工作树状态
git commit -m ""
记录仓库的修改
git reset   
重置当前HEAD到指定的状态
git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –-mixed:回退到某个版本,只回退了commit的信息,并且恢复到index file一级。如果还要提交,需要重新add,再commit即可
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(误操作后需要学git reflog挽救),撤销的commit中所包含的更改被冲掉
git branch  -m改名 -c 复制分支  -d删除上游分支  -r删除远程分支
列出、创建或删除分支
git checkout   -b创建并切换
选择分支或者恢复工作树文件
git merge
合并多条历史提交描述记录
git log
显示提交日志
git stash
将变化藏在一个脏工作区中
git tag
创建、列出、删除或验证使用GPG签名的tag对象
git fetch
用于从远程仓库获取最新的提交历史和分支信息,但并不自动合并或修改本地代码。
1. 检查远程仓库是否有新的提交或分支。
2. 获取远程仓库的最新提交历史,但不会应用到当前工作目录中。
3. 更新本地仓库的远程分支指针,指向远程仓库的最新提交。
git pull <远程主机名> <远程分支名>:<本地分支名>
用于从远程获取代码并合并本地的版本。
git push <远程主机名> <本地分支名>:<远程分支名>
用于从将本地的分支版本上传到远程并合并。
git cherry-pick <commitHash>
这个命令的作用就是把指定的commit,拉到一个新的分支上。

三人合作开发项目git命令实例

  1. 克隆(Clone)远程仓库:

    git clone <远程仓库URL>
    
  2. 创建自己分支(Branch):

    git branch <分支名>
    git checkout -b dev origin/dev
    
  3. 切换到自己的分支:

    git checkout <分支名>
    
  4. 查看状态(status)添加(Add)和提交(Commit)更改:

    git status
    git add <文件名>     或者 git add .  提交所有
    git commit -m "提交信息"
    
  5. 拉取(Pull)远程仓库的更改:

    git pull origin <分支名>
    

    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

  6. 解决冲突(Conflict):
    当合并分支时出现冲突时,手动解决冲突并提交更改。

  7. 推送(Push)更改到远程仓库自己的分支:

    git push origin <分支名>
    
  8. 成功推送之后在远程仓库提交合并请求到主分支

版本回退

1.查看提交历史,选择要回退的版本

git log

2.回退版本

git reset --hard commit_id

3.如果后悔,想要重返未来

git reflog  查看命令历史  确定回到未来的哪个版本

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –-mixed:回退到某个版本,只回退了commit的信息,并且恢复到index file一级。如果还要提交,需要重新add,再commit即可
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(误操作后需要学git reflog挽救),撤销的commit中所包含的更改被冲掉

Bug分支场景

模拟场景:当你接到一个修复一个代号101的bug的任务在master分支上,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交

1.把当前工作现场储藏起来

git stash

2.修复bug

git checkout master
git checkout -b issue-101
git add .
git commit -m "fix bug 101"
//[issue-101 4c805e2] fix bug 101
git switch master
git merge --no-ff -m "merged bug fix 101" issue-101

3.继续开发dev

git switch dev
git status
git stash listgit stash apply + git stash drop  / git stash pop
git stash list

场景:同样的bug,要在dev上修复,我们只需要把4c805e2 fix bug 101这个提交所做的修改“复制”到dev分支。注意:我们只想复制4c805e2 fix bug 101这个提交所做的修改,并不是把整个master分支merge过来。

$ git branch
* devmaster
$ git cherry-pick 4c805e2
[master 1d4b803] fix bug 101

git merge三种使用场景

命令都是一样的开发完dev分支然后切回master分支之后
git merge dev
只不过第三种会报错需要在master分支上解决冲突之后自行提交一次就ok
1.快进(无冲突

在这里插入图片描述

在这里插入图片描述

2.非快进(无冲突

在这里插入图片描述

3.非快进(有冲突

在这里插入图片描述

http://www.lryc.cn/news/188430.html

相关文章:

  • 02 认识Verilog HDL
  • 解决VUE安装依赖时报错:npm ERR! code ERESOLVE
  • 软件公司的项目管理软件选择指南
  • 2、服务器安装docker
  • UDP报文结构
  • (高阶) Redis 7 第21讲 IO多路复用模型 完结篇
  • 2023年入职/转行网络安全,该如何规划?
  • 解密RabbitMQ:你所不知道的端口及其重要性
  • Docker 环境搭建 (centeros)
  • 服务器编程基本框架
  • Leetcode——数组的遍历系列练习
  • 免费的ChatGPT与StableDiffusion AI绘画 二合一 附在线地址
  • vivado FFT IP仿真(3)FFT IP选项说明
  • 正点原子嵌入式linux驱动开发——Busybox根文件系统构建
  • React闭包
  • 【VS Code】推荐一套我非常喜欢的主题和字体样式
  • 【SQL】MySQL中的约束
  • css div左右布局
  • 06_Node.js服务器开发
  • git中添加不上传的文件夹或文件的名字
  • Android: edittext禁止输入空格和特殊字符代码记录
  • SpringMVC常用注解
  • 微信小程序
  • Python教程——配置环境,再探IDE
  • java BigDecimal取消科学计数法显示
  • 南昌新颜|AIGC艺术之光,历史的魅力与未来的探索
  • 电容笔有必要买吗?电容笔牌子排行
  • SpringCloud学习笔记-Ribbon负载均衡
  • 安装JAVA 依赖环境 Maven 教程
  • 小程序A跳转小程序B并且自动登录