Git操作汇总

配置工具

为所有本地存储库配置用户信息

  1. 设置要附加到提交事务的名称
    $ git config --global user.name “[name]”
  2. 设置您想要附加到提交事务的电子邮件
    $ git config --global user.email “[email address]”
  3. 启用有颜色帮助的命令行输出
    $ git config --global color.ui auto

分支

分支是使用Git的一个重要部分。您所做的任何提交都将在当前签出到的分支上进行。使用git status查看是哪个分支。

  • $ git branch [branch-name]:创建一个新的分支
  • $ git checkout [branch-name]:切换到指定的分支并更新工作目录
  • $ git merge [branch]:将指定分支的历史记录合并到当前分支中。这通常在pull请求中完成,但这是一个重要的Git操作。
  • $ git branch -d [branch-name]:删除指定的分支

创建仓库

当开始使用一个新的存储库时,您只需要做一次;或者在本地,然后推送到GitHub,或者克隆现有的存储库

  • $ git init:将现有目录转换为git存储库。
  • $ git clone [url]:克隆(下载)一个已经存在于GitHub上的存储库,包括所有的文件、分支和提交。
    克隆不同分支:$ git clone -b <分支名称> <克隆地址>

.gitignore文件

有时,最好将文件排除在使用git中。这通常是在名为.gitignore的特殊文件中完成的。您可以在github.com/github/gitignore上找到.gitignore文件的有用模板。

同步更改

同步本地存储库与GitHub.com上的远程存储库

  • $ git fetch:从远程跟踪分支下载所有历史记录:
  • $ git merge:将远程跟踪分支合并为当前本地分支:
  • $ git push:上传所有本地分支提交到GitHub
  • $ git pull:使用GitHub上相应远程分支的所有新提交更新当前本地工作分支。git pullgit fetchgit merge的组合。

做出更改

浏览并检查项目文件的演变

  • $ git log:列出当前分支的版本历史记录
  • $ git log --follow [file]:列出文件的版本历史记录,包括重命名
  • $ git diff [first-branch]…[second-branch]:显示两个分支之间的内容差异
  • $ git show [commit]:输出指定提交的元数据和内容更改
  • $ git add [file]:对文件进行快照,为版本控制做准备
  • $ git commit -m “[descriptive message]”:在版本历史记录中永久记录文件快照

重新提交

删除错误和更换历史

  • $ git reset [commit]:撤销[commit]之后的所有提交,保留本地更改
  • $ git reset --hard [commit]:将所有历史记录和更改丢弃回指定的提交

谨慎!改变历史可能会产生严重的副作用。如果您需要更改存在于GitHub(远程)上的提交,请谨慎进行。

GitHub Flow

img

开发使用流程

在我们接收到一个任务后,通常需要经历下述流程才可以完成这个任务:

  1. 拉取远程代码,根据远程dev分支新建一个自己的本地feature分支并切换到feature分支
  2. Coding…commit
  3. 将本地自己分支推送到远程自己的分支
  4. 打开远程GitHub ,进入创建 Pull Request 界面(选定目标dev分支、填写 Title 以及 Description、点击提交 Pull Request)
  5. 开发前若需要使用到远程dev分支新增内容则切换到本地dev分支并拉取远程dev分支内容,并将本地dev分支与本地feature分支合并

词汇表

git:一个开源的分布式版本控制系统
GitHub:一个托管和协作Git存储库的平台
commit:一个Git对象,一个压缩成SHA的整个存储库的快照
branch:指向提交的轻量级可移动指针
clone:存储库的本地版本,包括所有提交和分支
remote:GitHub上的一个公共存储库,所有团队成员都使用它来交换他们的更改
fork:由不同用户拥有的GitHub上存储库的副本
pull request:一个比较和讨论分支中引入的差异的地方,包括审查、注释、集成测试等等
HEAD:当使用git checkout时,HEAD指针可以移动到不同的分支、标签或提交


Git - Book
Learn Git Branching
Git Cheat Sheet
VSCode-通过GitLens插件完成git工作流 - 掘金