1

git 常用命令


基于上面的图片,我们来了解一些概念

  1. 版本库 .git文件
  • 当我们使用git管理文件时,比如git init时,这个时候,会多一个.git文件,我们把这个文件称之为版本库。
  • 另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。
  1. 工作区
  • 本地项目存放文件的位置
  • 可以理解成图上的workspace
  1. 暂缓区(Index/Stage)
  • 顾名思义就是暂时存放文件的地方,通过是通过add命令将工作区的文件添加到缓冲区
  1. 本地仓库(Repository)
  • 通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库
  • 通常而言,HEAD指针指向的就是master分支
  1. 远程仓库(Remote)
  • 举个例子,当我们使用GitHub托管我们项目时,它就是一个远程仓库。
  • 通常我们使用clone命令将远程仓库代码拷贝下来,本地代码更新后,通过push托送给远程仓库。

常见命令

  • 查看本地分支 - git branch
  • 查看远程分支 - git branch -r
  • 查看本地和远程分支 -git branch -a
  • 从当前分支,切换到其他分支 - git checkout <branch-name>
  • 创建并切换到新建分支 - git checkout -b <branch-name>
  • 删除本地分支 - git branch -d/-D <branch-name>
  • 当前分支与指定分支合并 - git merge <branch-name>
  • 删除远程分支 - git push origin -d <branch-name>git push origin :<brnach-name>
  • 重命名分支 -git brnach -m <oldbranch-name> <newbranch-name>
  • 拉取远程分支并创建本地分支 - git checkout -b 本地分支名 origin/远程分支名xgit fetch origin <branch-name>:<local-branch-name>
  • 远程仓库内容更新到本地 - git fetch
  • 命令用于从远程获取代码并合并本地的版本 - git pull
  • 查看提交历史 - git log
  • git文件状态 - git status

    • changes not staged for commit - 表示得大概就是工作区有该内容,但是缓存区没有,需要我们git add (红色)
    • changes to be commit - 表示文件放在缓存区了,我们需要git commit。(绿色)
    • nothing to commit,working tree clean - 这个时候,我们将本地的代码推送到远端即可 (无文件)

花式撤销

使用场景:

  1. 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
  2. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步

    • 第一步:用命令git reset HEAD <file>,就回到了场景1;
    • 第二步:按场景1操作。
  3. 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,需要版本回退一节,不过前提是没有推送到远程库。

差异比较

  • 比较工作区与缓存区 - git diff
  • 比较工作区与本地最近一次commit内容 - git diff HEAD
  • 比较两个commit之间差异 - git diff <commit ID> <commit ID>
  • 比较两个分支的内容 - git diff 分支1 分支2

解决冲突

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

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

忽略文件 .gitignore

这个文件的作用,会去忽略一些不需要纳入Git管理这种,我们也不希望出现在未跟踪文件列表。


# 此行为注释 会被Git忽略

# 忽略 node_modules/ 目录下所有的文件
node_modules


# 忽略所有.vscode结尾的文件
.vscode

# 忽略所有.md结尾的文件
*.md

# 但README.md 除外
!README.md

# 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt
doc/*.txt

# 忽略 doc/ 目录下所有扩展名为txt文件

doc/**/*.txt

提交代码

  1. git status - 查看修改文件(如果有误修改文件使用git checkout撤回)
  2. git diff - 查看修改内容
  3. git add . - 将内容添加到缓存区
  4. git status - 确定添加到缓存区的文件
  5. git push origin <分支名称> - 添加到远程仓库

合并上线流程

  1. git fetch - 拉取远程分支(获取到要合并的分支)
  2. git checkout <要合并的分支>
  3. git pull origin <要合并的分支>
  4. git checkout qa/develop
  5. git merge <要合并的分支>

    • 无冲突 - 执行 6
    • 有冲突 - 先解决冲突,解决完冲突之行git add git commit
  6. git push origin qa/develop
  7. 如果上线则需把develop合并到release
  8. 添加白名单

参考

  1. 「新手入门福利」一张脑图带你掌握Git命令
  2. https://www.liaoxuefeng.com/w...

追梦
20 声望0 粉丝

« 上一篇
文章末级页