这里涵盖完成工作将要使用的基本命令。初始化仓库(respostory)、开始或停止追踪文件(track)、暂存文件(stage)、提交更改(commit)。配置指定忽略的文件和文件模式(通过 glob 匹配)。快速简单的撤销错误操作、快速查看提交的历史记录、不同提交之间的差异以及向远程提交拉取代码。

查看帮助文档

  1. # 查看常用命令:21 条
  2. $ git --help
  3. # git 子命令帮助
  4. $ git help -a
  5. # git 相关概念
  6. $ git help -g
  7. # 查看 add 的详细介绍 或者 git add --a 输入错误命令显示详细参数
  8. # 如果帮助文档中有 `[--] <pathspec>` 则此命令可以指定文件路径,对指定的文件进行操作
  9. $ git add -h

基本的 Git 工作流程

  1. 在工作区修改文件
  2. 暂存文件:将文件快照放入暂存区域
  3. 提交更新:找到暂存区域的文件,将快照永久存储到 Git 的仓库目录
  1. # 创建版本库 - 文件夹已存在
  2. $ git init
  3. # 克隆一个现有的仓库到本地:创建仓库同名文件夹
  4. $ git clone <git@xxxx>
  5. # 或者
  6. $ git add remote <远程仓库 URL>
  7. ... 创建文件、修改文件、删除文件等
  8. # 查看文件状态
  9. $ git status
  10. $ git add <filePath>
  11. $ git status
  12. $ git commit -m "修改 xxx"
  13. # 分支操作
  14. $ git branch <newBranch>
  15. $ git checkout <newBranch>
  16. # 合并分支
  17. $ git merge <newBranch>
  18. # 将提交推送到远程 同名分支 上
  19. $ git push origin branchName
  20. # 将远程 同名分支 拉取下来合并
  21. # 是 git fetch + git merge
  22. $ git pull origin branchName
  23. # 多使用 git status 查看自己当前所在的分支以及仓库中的文件状态
  1. # 在非 工作区 执行 git 命令,会报错
  2. # git 会沿着目录依次向上查找 .git 目录
  3. # 显示 .git 所在目录
  4. $ git rev-parse --git-dir
  5. /path/to/my/workspace/demo/.git
  6. # 显示 工作区 所在目录
  7. $ git rev-parse --show-toplevel
  8. # 显示相对于工作区根路径目录
  9. $ git rev-parse --show-prefix

使用 Git 注意事项

提交代码前,diff 更改的代码,尤其是合并(包括拉取合并线上代码)、解决冲突前后;
倚天工作结束后,整理好工作区;
并行项目,使用分支开发;
遇到冲突时,搞明白冲突的原因,避免随意丢弃别人的代码;
产品发布后,打 Tag,方便将来分支修复 Bug、方便回滚;
多使用 git status 查看当前仓库的状态;
对于公共分支,单个功能保持一个 commit,自己开发的分支,需要保持每个提交的粒度为一个提交做一个修改;
文件名、目录名注意大小写,修改前后注意是否有 {DataStore1.js => DataStore.js} 标志,暂存区是否有 renamed 标志;

  1. ### git status
  2. Changes to be committed:
  3. (use "git reset HEAD <file>..." to unstage)
  4. renamed: src/components/containers/ExpertSystem/MethodLibrary/DataStore.js -> src/components/containers/ExpertSystem/MethodLibrary/DataStore1.js
  5. ### git log
  6. Date: Wed Sep 18 10:25:57 2019 +0800
  7. rename
  8. .../containers/ExpertSystem/MethodLibrary/{DataStore1.js => DataStore.js} | 0
  9. 1 file changed, 0 insertions(+), 0 deletions(-)

window 中为避免比莫名其妙的问题,避免使用中文文件名;
window 避免使用记事本编辑文本文件;