Git 命令大全:解锁代码版本控制的神奇秘密!

发布时间:2024年01月06日

Git 命令大全:解锁代码版本控制的神奇秘密!

以下是备忘单中的所有命令:

设置

设置将附加到提交和标记的名称和电子邮件

$ git config --global user.name "Danny Adams"

$ git config --global user.email "myemail@gmail.com"

使用 Git 启动项目

创建本地存储库(省略以将当前目录初始化为 git 存储库)<directory>

$ git init <directory>

下载远程存储库

$ git clone <url>

做出改变

将文件添加到暂存

$ git add <file>

暂存所有文件

$ git add .

将所有暂存文件提交到 git

$ git commit -m "commit message"

添加对跟踪文件所做的所有更改并提交

$ git commit -am "commit message"

基本 Git 概念

  1. main:默认开发分支

  2. origin:默认上游存储库

  3. HEAD:当前分支

  4. HEAD^:HEAD 的父级

  5. HEAD~4:HEAD的曾曾祖

分支

列出所有本地分支。添加标志以显示所有远程分支。 标志。-r``-a

$ git branch

创建新分支

$ git branch <new-branch>

切换到分支并更新工作目录

$ git checkout <branch>

创建一个新分支并切换到该分支

$ git checkout -b <newbranch>bash

删除合并的分支

$ git branch -d <branch>

删除分支,无论是否合并

$ git branch -D <branch>

向当前提交添加标签(通常用于新版本发布)

$ git tag <tag-name>

合并

将分支合并到分支中。添加无快进合并选项a``b``--no-ff

Git 中的快进与非快进合并

$ git checkout b

$ git merge a

将所有提交合并并压缩为一个新提交

$ git merge --squash a

变基

将功能分支重基到 main 上(以合并对 main 所做的新更改)。防止不必要的合并提交到功能中,保持历史记录整洁

在 Git 中将功能变基到 main 上

$ git checkout feature

$ git rebase main

在将分支变基到 main 之前以交互方式清理分支提交

$ git rebase -i main

以交互方式将最后 3 个提交变基到当前分支

$ git rebase -i Head~3

撤消操作

移动(&/或重命名)文件和舞台移动

$ git mv <existing_path> <new_path>

从工作目录和暂存区域删除文件,然后暂存删除

$ git rm <file>

仅从暂存区移除

$ git rm --cached <file>

查看上一次提交(只读)

$ git checkout <commit_ID>

创建一个新的提交,从指定的提交中恢复更改

$ git revert <commit_ID>

返回到上一个提交并删除之前的所有提交(恢复更安全)。添加标志以同时删除工作区更改(非常小心)--hard

$ git reset <commit_ID>

查看存储库

列出尚未提交的新文件或修改的文件

$ git status

列出提交历史记录,以及相应的 ID

$ git log --oneline

显示对未暂存文件的更改。对于暂存文件的更改,请添加选项--cached

$ git diff

显示两次提交之间的更改

$ git diff commit1_ID commit2_ID

藏匿

存储修改和暂存的更改。若要包含未跟踪的文件,请添加标志。对于未跟踪和忽略的文件,请添加标志。-u``-a

$ git stash

如上所述,但添加注释。

$ git stash save "comment"

部分藏匿。仅存储单个文件、文件集合或文件中的单个更改

$ git stash -p

列出所有藏匿处

$ git stash list

重新应用存储而不删除它

$ git stash apply

在索引 2 处重新应用存储,然后将其从存储列表中删除。省略弹出最近的存储。stash@{n}

$ git stash pop stash@{2}

显示存储 1 的差异摘要。传递标志以查看完整的差异。-p

$ git stash show stash@{1}

删除索引 1 处的存储。省略删除上次存储的内容stash@{n}

$ git stash drop stash@{1}

删除所有存储

$ git stash clear

同步

添加远程存储库

$ git remote add <alias> <url>

查看所有远程连接。添加标志以查看 URL。-v

$ git remote

删除连接

$ git remote remove <alias>

重命名连接

$ git remote rename <old> <new>

从远程存储库获取所有分支(无合并)

$ git fetch <alias>

获取特定分支

$ git fetch <alias> <branch>

获取当前分支的远程存储库副本,然后合并

$ git pull

将本地更改(变基)到对远程存储库所做的新更改的顶部(用于干净的线性历史记录)

$ git pull --rebase <alias>

将本地内容上传到远程存储库

$ git push <alias>

上传到分支(然后可以拉取请求)

$ git push <alias> <branch>

git remote rename




从远程存储库获取所有分支(无合并)

```bash
$ git fetch <alias>

获取特定分支

$ git fetch <alias> <branch>

获取当前分支的远程存储库副本,然后合并

$ git pull

将本地更改(变基)到对远程存储库所做的新更改的顶部(用于干净的线性历史记录)

$ git pull --rebase <alias>

将本地内容上传到远程存储库

$ git push <alias>

上传到分支(然后可以拉取请求)

$ git push <alias> <branch>

欢迎点赞,评论,关注~

文章来源:https://blog.csdn.net/Raymend_Lee/article/details/135422530
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。