关于git:git-常用命令

34次阅读

共计 2058 个字符,预计需要花费 6 分钟才能阅读完成。

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 文件状态 – git status

  • changes not staged for commit – 示意得大略就是工作区有该内容,然而缓存区没有,须要咱们 git add
  • changes to be commit – 示意文件放在缓存区了,咱们须要 git commit
  • nothing to commit,working tree clean – 这个时候,咱们将本地的代码推送到远端即可

常见命令

分支治理

  • 查看本地分支 – 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 branch -v
  • 删除近程分支 – git push origin -d <branch-name>git push origin :<brnach-name>
  • 重命名分支 –git brnach -m <oldbranch-name> <newbranch-name>
  • 拉取近程分支并创立本地分支 – git checkout -b 本地分支名 origin/ 近程分支名 x git fetch origin <branch-name>:<local-branch-name>
  • 近程仓库内容更新到本地 – git fetch
  • 命令用于从近程获取代码并合并本地的版本 – git pull

花式撤销

  • 撤销「工作区」批改 – git checkout -- <file>
  • 暂存区文件撤销 (不笼罩工作区) – git reset HEAD <file>
  • 版本回退 – git reset --(soft | mixed | hard) < HEAD ~(num) >

应用场景:
场景 1:当你改乱了工作区某个文件的内容,想间接抛弃工作区的批改时,用命令git checkout -- file

场景 2:当你岂但改乱了工作区某个文件的内容,还增加到了暂存区时,想抛弃批改,分两步
第一步: 用命令 git reset HEAD <file>,就回到了场景 1;
第二步: 按场景 1 操作。

场景 3:曾经提交了不适合的批改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到近程库。

差别比拟

  • 比拟工作区与缓存区 – git diff
  • 比拟缓存区与本地库最近一次 commit 内容 – git diff -- cached
  • 比拟工作区与本地最近一次 commit 内容 – git diff <commit ID> <commit ID>

解决抵触

当 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 fetch – 拉取近程分支(获取到要合并的分支)
  2. git checkout < 要合并的分支 >
  3. git pull origin < 要合并的分支 >
  4. git checkout qa/develop
  5. git merge < 要合并的分支 >

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

参考

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

正文完
 0