文章目录

  • 1. 分支篇
  • 2. 查看篇
  • 3. 回退篇
  • 4. 合并篇
  • 5. 事故篇

1. 分支篇

# 查看本地分支列表
git branch
# 查看远程版本库分支列表
git branch -r
# 查看本地与远程所有的分支列表
git branch -a# 从当前分支创建新的dev分支
git branch dev# 删除dev分支
git branch -d dev
# 删除远程dev分支
git push origin --delete dev# 重命名分支
git branch -m dev dev1# 从当前分支拉出新的分支dev
git checkout -b dev
# 从远程分支拉取到本地
git checkout -b dev origin/dev
# 根据tag拉出新的分支
git checkout -b branch_name tag_name
# 把新建的分支push到远端
git push origin dev# 切换到dev分支
git switch dev
git checkout dev# 查看关联远程的分支信息及权限
git remote -v
# 删除关联的远程分支origin
git remote remove origin
# 添加远程分支关联
git remote add origin https://xxx.git# 将远程分支覆盖本地代码
git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull

2. 查看篇

查看状态与日志

# 查看当前工作区状态
git status# 查看提交记录
git log
# 查看所有的log
git reflog
# 查看feature1分支是否push到远程分支
git log feature1 ^origin/feature1

查看差异

# 工作区 vs 暂存区
git diff
# 暂存区 vs 本地版本库(最近一次commit)
git diff --cached
# 工作区 vs 本地版本库(最近一次commit)
git diff HEAD
# 工作区 vs 指定commit-id的差异
git diff commit-id
#  暂存区 vs 指定commit-id的差异
git diff --cached commit-id
# commit-id-1 vs commit-id-2
git diff commit-id-1 commit-id-2

3. 回退篇

git reset --hard commit_id# 放弃工作区修改(如果是所有文件把文件名改成 . 点就行)
git checkout -- xxx.js
# 放弃暂存区修改,回退到Unstaged状态
git reset HEAD .
# 回退提交
git reset HEAD@{index}

参数
--mixed :为默认值,等同于git reset。 将文件回退到工作区,此时会保留工作区中的文件,但会丢弃暂存区中的文件;
--soft :将文件回退到暂存区,此时会保留工作区和暂存区中的文件;
--hard :将文件回退到修改前,此时会丢弃工作区和暂存区中的文件;

4. 合并篇

# 添加几个文件到暂存区
git add xx.js yy.js
# 添加所有文件到暂存区
git add .
# 提交暂存区的修改到本地版本库
git commit -m "本次修改的comment"
# push到远程仓库分支 origin-关联的仓库名  master-分支名
git push origin master# 合并dev分支修改到当前分支
git merge dev -m "merge from dev"
# 合并某一次提交到当前分支(产生一次提交,需要push)
git cherry-pick fsa0dsads
# 强制将远程分支覆盖本地分支
git fetch --all
git reset --hard origin/master
git pull# 非快速合并 会产生一条commit
git merge dev  --no-ff -m "merge dev"

5. 事故篇

常在河边走,哪有不湿鞋;人在江湖飘,哪有不挨刀!

事故1:刚提交了一次代码,突然发现少了一个空格或多了一个分号,类似这些小问题又得重新提交一遍,如果按正常的提交又会产生一次提交记录,这样会多出很多的提交记录,我们是拒绝的,那怎么做呢?

一般的小伙伴会想到先提交一次再用git rebase -i通过变基来合并提交,这也可以,但是我想大家隆重介绍比它快一万倍的--amend,See:

git add .
git commit --amend --no-edit

上面的命令是在前一次提交后,发现有小问题然后就再提交一次,只需要加个参数--amend就会自动合并上一次的提交,--no-edit参数是不需要修改注释,如果需要修改就不加这个参数就行了。
需要注意的是--amend不要滥用,如果一直用这个来合并,最终就只有一条提交记录了,如果是别的功能修改就不要使用--amend让它生成新的提交记录。

事故2:新的开发任务还没编写完成,本地有部分代码还不能提交,而需要马上解决一个bug,此时该怎么做?

这里需要用到git stash命令,它的作用就是保存当前的工作区暂存区的状态,把当前的工作隐藏起来,等以后需要的时候再恢复,git stash 这个命令可以多次使用,每次使用都会新加一个stash@{num},num是编号

# 隐藏当前的工作区与暂存区,可以切换到别的分支继续工作
git stash# 查看被隐藏的stash列表
git stash list# 恢复最新的stash到工作区(原来暂存区的需要重新进行add暂存)
git stash pop# 删除所有的stash
git stash clear

先保存当前工作区和暂存区的修改,此时的工作区会显示上一次提交后的样子,修改和暂存的文件被隐藏了 ,这时候就相当于working tree clean状态,可以切换到别的分支去修改bug或紧急任务,等那边的问题解决了,再回到这个分支来执行git stash pop恢复之前的工作到工作区,注意之前保存到暂存区的需要重新暂存。

注意:工作区有文件已修改没有添加到暂存区或没有提交,都不能切换到别的分支。

事故3:本来应该提交到新分支的东西,提交到了主分支!

# 从当前状态的主分支新建一个分支
git branch new-master
# 取消主分支的最新一次提交
git reset HEAD~ --hard
# 切换到新分支
git checkout new-master

注意:如果你已经推送到了远程分支,那一切都晚了。如果你已经修改了别的文件,那第二行应该是git reset HEAD@{number},而不是HEAD~,以回到最初犯错的时间和地点。

事故4:提交到了错误的分支上!

解决办法1:git stash保留现场

# 取消最新的提交,保留工作区现场原状
git reset HEAD~ --soft
# 保存现场到stash
git stash# 切换到正确的分支
git switch dev
# 还原现场
git stash pop
# 这里可能会有冲突,如果有就解决下冲突
# 然后再添加暂存,提交
git add .
git commit -m "balabala..."

解决办法2:cherry-pick(摘樱桃

Git 实用命令项目基操【合集】相关推荐

  1. ThinkPHP6项目基操目录

    前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...

  2. 最佳助攻!25款轻巧实用的SKETCH插件大合集

    最佳助攻!25款轻巧实用的SKETCH插件大合集 CocoaChina Sketch绝对是除了PS和AI之外在Mac 平台上最热门的设计工具,它更新迅速,功能完备,并且非常契合目前对于UI设计的需求, ...

  3. ThinkPHP6项目基操(15.实战部分 阿里云短信redis)

    阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...

  4. stata代码命令全集:跟检验do文件、stata常用命令、代码大合集、面板熵值法

     一.常用模型代码整理 1.数据来源: 2.时间跨度:无 3.区域范围:无 4.指标说明: 包含如下模型代码: l OLS模型 l Heckman两阶段模型 l PSM+DID模型 l 固定效应模型( ...

  5. 墙裂推荐,2023年最强、最实用的IDEA插件推荐合集

    插件目录 Alibaba Java Coding Guidelines(阿里巴巴java开发规范) Alibaba Cloud AI Coding Assistant(阿里云AI代码助理) Code ...

  6. OneIndex:基于onedrive的公共网盘搭建——使用命令行(OneIndex合集1)

    OneIndex能将onedrvie的文件索引出来,让更多人能查看下载,同时也比限速下载的百度网盘好一点,当然这和微软给你分配的服务器地区有关.这个程序不占用服务器空间流量.这下面的内容转载于程序作者 ...

  7. AI Studio 精品项目 | NLP实战合集

    点击左上方蓝字关注我们 积小流成江海,在各位开发者的支持下,AI Studio积累了一批涵盖各个技术方向与行业场景的精品实训项目,成为无数小白同学进步的指明灯. NLP精品项目合集 随着基于深度学习的 ...

  8. 同等质量下那种图片格式小_最实用的Window小工具合集,总有一款适合你!

    HELLO,我是利兄~ 我们在日常办公的时候,总是被一些小事情难住,这个时候,一些小工具就可以为我们提供帮助. 今天利兄就来推荐一波办公的时候可能会用到的小工具合集,记得收藏哦. 1.图片下载助手 这 ...

  9. SwiftUI 2020年开源项目和教程合集

    你说flash好用,苹果给封杀了.你说h5很灵活,苹果悄悄清洗h5.你说kotlin好用,苹果给你造了Swift.你说flutter好用,苹果就自己造了SwiftUI.苹果的原则很简单,我的世界必须都 ...

最新文章

  1. FPGA之道(37)Verilog中的编写注意事项
  2. 提供《华容道与数据结构》代码供测试
  3. 『Windows Tips』Windows 自带屏幕截图的使用
  4. 返回动态html,使用硒返回动态页面的html代码
  5. YOLOV3 --BUG---No labels in D:\yolov5\train_data\train.cache. Can not train without labels.
  6. .NET Core 2.0体验
  7. nginx unit
  8. 05_视图控制器_1
  9. 图片调整大小后变得不清晰了怎么办?
  10. 两个正态总体均值差的置信区间
  11. 聚名企服商标注册流程及资料(2022新版新手教程)
  12. java工程师js_Ajax,  励志做一名Java全干工程师
  13. Windows7双系统卸载Ubuntu
  14. 什么是描述性统计分析( descriptive statistics)?主要包含哪些内容?
  15. android 盒子排名,2020年电视盒子排行榜:盘点今年性能最高的五款电视盒子
  16. cs231n学习笔记——图像分类
  17. 使用 7-Zip 的命令行版本来压缩和解压文件
  18. 文件太大不用愁,好用的压缩软件来喽!
  19. 国内纺织与服装领域知名的调查研究咨询公司
  20. Google Noto Sans CJK 字体

热门文章

  1. MongoDB数据库备份恢复与导入导出
  2. SQLServer 系统数据库
  3. Ralasafe的使用总结
  4. SQL Server 锁升级阈值
  5. 打印机共享无法正常打印的处理思路
  6. synchronized简介
  7. Apache2 httpd.conf 配置详解 (二)
  8. Python:程序员在每天不同时间发微信消息给女友
  9. 《纽约时报》:互联网新一轮品牌争夺战到来
  10. Win32下的录音编程