前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git的三个阶段分别有哪些?每个阶段包含哪些命令?

Git的三个阶段分别有哪些?每个阶段包含哪些命令?

原创
作者头像
网络技术联盟站
发布2022-08-24 22:39:33
1.7K0
发布2022-08-24 22:39:33
举报

git操作一般分为三个阶段:

工作目录

文件系统中实际文件的状态,可以跟踪或取消跟踪,可以更改或删除。

暂存区或索引

我们根据其更改为新版本准备一组文件的区域

HEAD

它是当前分支中的指针,它具有完整的存储库历史记录

每个阶段的命令如下:

工作目录

git 命令

描述

git init

将普通文件夹初始化为 Git 存储库

git status

显示工作目录和 INDEX 的更改

git status -sb

将更改显示为列表

git add .

将所有更改添加到索引

git add {file or folder}

将特定更改添加到 INDEX

git rm {file or folder}

从工作目录中删除文件(用于新提交)

git add -A .

添加所有更改并删除到 INDEX

git clean -d -f

放弃更改(清理工作目录)

git checkout {file}

恢复文件内容(因为它在 HEAD 上)

git stash

保存未完成的工作(本地更改)

git stash -m "WIP"

保存未完成的工作(本地更改)并命名

git stash pop

带回您保存的未完成工作

git stash list

列出您当前拥有的 stash

git stash pop [stash]

删除单个隐藏状态并将其应用于当前分支

git stash apply [stash]

像 pop,但不要从存储列表中删除状态

git stash -U [stash]

存储更改添加未跟踪的文件

git log --since="1 weeks ago"

显示上周的当前提交

git log [-p] {file}

显示对特定文件的更改

git log {branch..master}

两个分支的区别

git log -S 'text'

显示与文本匹配的更改

git log {directory}

显示特定目录的更改

git grep {something}

列出与某事匹配的提交

git reflog

像 git log,但显示已删除的提交(参见 git reset)

暂存区

git 命令

描述

git commit -m 'comment...'

使用在 INDEX 上添加的更改创建提交

git commit -am 'comment...'

添加(跟踪的文件)并创建提交

git commit --amend ['comment...']

将更改添加到最后一次提交

git restore --staged {file or folder}

从暂存区域中删除文件/文件夹 - 撤消 git add

git reset HEAD {file}

撤消添加命令,将更改的文件保留在工作目录中

git reset HEAD

撤消所有添加的文件,将更改保留在工作目录中

git remote prune origin

通过删除远程删除的分支来清理本地分支

git ls-remote --refs origin

列出远程分支,包括 PR 分支 (refs/pull/PR_NUMBER/head

git fetch origin pull/[PR_NUMBER]/head:pr/[PR_NUMBER]

获取 PR 代码到本地仓库

git checkout pr/[PR_NUMBER]

对 PR 分支内容的更改(在上面的命令中获取)

HEAD

git 命令

描述

git show {sha1}

显示当前提交详细信息

git checkout {sha1}

签出(导航)到特定 sha1(提交)中的代码

git checkout HEAD

结帐(导航)到 HEAD 中的代码

git revert {sha1}

创建一个撤消特定提交的新提交 (sha1)

git revert HEAD

创建一个新的提交撤消上一次提交

git reset {sha1}

将当前 HEAD 重置为指定状态 {sha1}

git reset --merge {sha1}

将当前 HEAD 重置为指定状态 {sha1},保持工作目录上的当前更改

git reset HEAD~1 --soft

撤消最后一次提交,保留 INDEX 上的更改

git reset HEAD~1

撤消最后一次提交,保留工作目录上的更改

git reset HEAD~1 --hard

撤消最后一次提交,丢弃所有更改

git reset HEAD --hard

撤消对 INDEX 和工作目录的所有更改

git reflog

列出所有 {sha} 并从重置中恢复 --hard

git bisect start

开始二分查找引入 bug 的变化

git bisect bad HEAD

将 HEAD 标记为坏

git bisect good {sha1}

将最后一次提交标记为良好

git bisect {good/bad}

将中间提交标记为好或坏

git bisect reset

返回到 git bisect start 之前签出的提交

git remote [add/rm] {repo_alias} {url}

管理您跟踪其分支的存储库集

git remote add {repo_alias} -f {url}

添加并获取远程存储库

git remote [-v]

列出远程存储库

git push

使用本地提交更新远程仓库

git rebase {branch}

添加来自指定分支的当前分支提交

git rebase -i HEAD~3

进行一组最后三个提交

git clone {repo url}

将存储库克隆到新目录

git clone -b {branch} {repo url}

克隆存储库分支

git fetch

从另一个存储库(.git/FETCH_HEAD)下载对象和引用

git pull {alias} [master]

从另一个存储库中获取并与主库合并

git pull [-s strategy] [-X options] [alias] [branch]

使用自定义选项从另一个存储库中获取并合并

git merge {branch}

将当前分支与另一个指定分支合并

git merge {branch} --squash

将当前分支与另一个指定分支合并,保留 INDEX 上的更改

git branch -a

列出远程和本地分支

git branch {new_branch}

创建一个新的本地分支

git branch -m {old-name} {new-name}

重命名本地分支

git branch -rd origin/{branch}

本地删除分支

git push origin --delete bugfix

远程删除同一个分支

git checkout -b {new_branch}

创建并更改到新的本地分支

git checkout {branch}

更改到另一个现有分支

git switch {branch}

更改到另一个现有分支

git switch -c {branch}

创建并更改到新创建的分支

git push -u {repo_alias} {branch}

将本地分支推送为远程分支

git branch -d {branch}

删除本地分支

git push {repo_alias} --delete {branch}

删除远程分支

git tag {v1.0}

创建一个新标签

git push origin {v1.0}

使用新标签更新远程存储库

git format-patch master --stdout > bugfix.patch

针对主服务器创建补丁(提交不在主服务器中)

git apply --stat bugfix.patch

列出补丁的更改(不应用它)

git am --signoff --ignore-whitespace ‹ bugfix.patch

在当前分支上应用补丁

git merge second_repo/master -s recursive -X ours

合并当前仓库

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工作目录
  • 暂存区
  • HEAD
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档