learngit

该文详细介绍了Git的基本操作,包括初始化仓库、添加文件、提交、查看状态、历史版本追踪、分支管理、合并、撤销修改、删除文件和分支、处理冲突以及标签的使用。重点讲述了分支策略,如fast-forward合并与普通合并的区别,以及如何修复bug和管理工作现场。
摘要由CSDN通过智能技术生成

learngit

比如说有一个readme.txt

git init -> 创建空仓库

git add readme.txt -> 添加文件到暂缓区

git commit -m “message” -> 将暂缓区的内容提交到当前分支(git自创master分支);" "中的信息就像是一种备注提示

git status -> 查看是否有修改状态

git diff -> 查看修改过的部分

git log -> 查看历史版本,也可添加–pretty=oneline使内容更直观

git reset hard commit_id -> 可以穿越回去到过去的版本,log也会被更新

git reflog ->可以看历史命令记录,再次可以看见版本号

​ git diff HEAD – readme.txt命令可以查看工作区和版本库里面最新版本的区别

​ git checkout – file -> 可以撤销在add之前的内容,其实就是将版本回到最近一次git add的样子

​ 但当你已经git add的时候可以使用

​ git restore --staged file 来取消暂缓区的修改,然后再用git checkout – file来清除工作区

​ 如果已经提交了不合适的修改到版本库时,想要撤销本次提交,就用git reset版本回退,不过前提是没有推送到远程库

​ 删除文件:

先rm file

后git rm file

最后 git commit

HEAD就是最新版本

删除分支

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch

切换分支:git checkout 或者git switch

创建+切换分支:git checkout -b 或者git switch -c

合并某分支到当前分支:git merge

删除分支:git branch -d

当合并分支发生冲突时

可以git status来告诉我们冲突的文件

此时cat readme.txt可以直接查看readme.txt的内容,

Git会用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

修改之后提交

在这里插入图片描述

也可以使用git log --graph --pretty=oneline --abbrev-commit

修改之后删除feature1分支就可以了

分支策略

在合并时我们会偶尔使用fast-forward说明我们进入快速合并模式,但这种模式下,如果我们删除分支就会丢失分支信息,所以我们用–no-ff来强制退出快速模式转为普通模式,还会自动创建一个commit

当你已有一个dev分支和master分支的前提下,

Git merge --no-ff -m “add merge” dev

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

在这里插入图片描述

合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。

BUG分支

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop(这是回到工作区并删除stash;可以分为两步:git stash apply回到工作区、git stash drop删除stash),回到工作现场,此时用 git stash list就查看不到任何stash

信息了,你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:git stash apply stash@{0};

在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

创建标签

  • 命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • 命令git tag -a -m "blablabla…"可以指定标签信息;
  • 命令git tag可以查看所有标签。

操作标签

  • 命令git push origin 可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d 可以删除一个本地标签;-d delete
  • 命令git push origin :refs/tags/可以删除一个远程标签。

https://liaoxuefeng.gitee.io/resource.liaoxuefeng.com/git/git-cheat-sheet.pdf

:refs/tags/可以删除一个远程标签。
在这里插入图片描述

参考:Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值