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

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

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合并当前仓库
THE END
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容