【Git】使用教程

Git 使用教程

来源于廖雪峰老师的 Git 教程

链接:廖雪峰 - Git 教程


一、分支管理


1、创建与合并分支

  1. git checkout 命令加上 -b 参数表示创建并切换

    git checkout -b dev // 创建并合并分支
    git checkout -b dev -> git branch dev + git checkout dev

  2. git branch 命令会列出所有分支,当前分支前面会标一个 * 号

    git branch

  3. git commit 用于提交分支

    git commit -m "需要提交的分支"

  4. git merge 用于合并指定分支到当前分支

    git merge "需要合并的分支"

  5. git branch -d 用于删除指定分支

    git branch -d "需要删除的分支"

合并后,就可以将分支进行删除


小结

命令 解释
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 或者 git switch <name> 切换分支
git checkout -b <name> 或者 git switch -c <name> 创建+切换分支
git merge <name> 合并某分支到当前分支
git branch -d <name> 删除分支

2、解决冲突

  1. git status 用于查看状态

    git status

当 Git 无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把 Git 合并失败的文件手动编辑为我们希望的内容,再提交。

  1. git log --graph 命令可以看到分支合并图。

  2. git stash 用于分支管理策略

    git stash // 把当前工作现场"储藏"起来
    git stash pop
    git stash list
    git cherry-pick 4c805e2


小结

  1. 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
  2. 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;
  3. 在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改"复制"到当前分支,避免重复劳动。

3、多人协作

复制代码
git remote
git remote -v // 更详细
git push origin master
git pull

小结

● 查看远程库信息,使用git remote -v;

● 本地新建的分支如果不推送到远程,对其他人就是不可见的;

● 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

● 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

● 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

● 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

4、Rebase

● rebase操作可以把本地未push的分叉提交历史整理成直线;

● rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。


二、标签


1、创建标签

首先,切换到需要打标签的分支上。

复制代码
git tag v1.0
git tag // 查看标签
git tag v0.9 f52c633 // 给指定的提交打标签
git show v0.9 // 查看标签信息
git tag -a v0.1 -m "balabal..." 1094adb // 创建带有说明的标签

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

2、操作标签

如果标签打错了,可以进行删除

复制代码
git tag -d v0.1

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

如果要推送某个标签到远程,使用命令git push origin

或者,一次性推送全部尚未推送到远程的本地标签:git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

复制代码
git push origin --tags -> git push origin :refs/tags/v0.9

小结

● 命令git push origin 可以推送一个本地标签;

● 命令git push origin --tags可以推送全部未推送过的本地标签;

● 命令git tag -d 可以删除一个本地标签;

● 命令git push origin :refs/tags/可以删除一个远程标签。

相关推荐
小龙10 小时前
【Git 报错解决】 远程仓库 origin 已存在(`remote origin already exists`)
git·报错
BORN(^-^)18 小时前
Git 操作概要
git
bigHead-21 小时前
Git合并操作详解:安全高效地合并远程分支
git·安全·elasticsearch
C_心欲无痕21 小时前
ts - 交叉类型
前端·git·typescript
秋饼1 天前
【K8S测试程序--git地址】
git·容器·kubernetes
小龙1 天前
【Git 报错解决】本地无有效提交无法推送(`src refspec main does not match any`)
git·github·报错
小扶苏1 天前
删除git全局账号信息并设置成新的账号密码命令
git
Greg_Zhong2 天前
Git创建任务分支进行开发,最后合并主分支master【纯git命令执行过程】阐述
git
眯眼因为很困啦2 天前
GitHub Fork 协作完整流程
前端·git·前端工程化
AlexDeng2 天前
Git 中模糊搜索分支名称并创建本地跟踪分支
git