[关闭]
@runzhliu 2018-09-13T05:25:26.000000Z 字数 1728 阅读 2726

Git基本操作和基于Fork的工作流

git fork


1 Git 基本操作

1.1 Git 最重要的命令

  1. git help
  2. man git
  3. git xxx --help

1.2 Git 的几个概念

worktree = workspace = 工作区 = 工作目录
index = stage = git 索引 = 暂存区
.git = repository = 本地 repo = 本地仓库
remote = remote repo = 远程仓库

image_1cn89qnov3te1026hj31ei29tp9.png-53kB

Git 基本工作方式,修改/添加/删除文件,然后 git add,把文件内容加入 git 索引,接着 git commit 把内容存入 repo。

Git 仓库中的文件按照是否被 Git 仓库管理,分为三种状态 tracked/ignored/untracked。

1.3 Git 的常用命令

请在 /tmp 目录下进行以下操作。

  1. # .git 文件夹就是 repo
  2. git init
  3. # tmp 目录下载远程仓库
  4. git clone git@gitlab.dxy.net:runzhliu/git-sharing.git
  5. # 切出工作分支/开发分支
  6. git checkout -b dev_{邮箱地址}
  7. git checkout -b dev_lrz@dxy.cn
  8. # 增加文件
  9. touch test
  10. vim test
  11. # 查看 Git 文件系统的情况
  12. git status
  13. # 提交到 git 索引
  14. git add -A
  15. # 提交到 repo,并撰写 commit message
  16. git commit
  17. # 查看提交记录
  18. git log
  19. # 修改文件内容
  20. vim test
  21. # 再次提交到 git 索引并且提交到 repo
  22. git add -A
  23. git commit
  24. # 推向远程
  25. git push -u orgin dev_{邮箱地址}
  26. # 切换分支到 master
  27. git checkout master
  28. # 拉取远程仓库,可以看到有很多分支生成了
  29. # orgin 代表远程仓库
  30. git fetch orgin
  31. # 切回自己的分支,删除文件,提交到索引和仓库
  32. rm test
  33. git add -A
  34. git commit
  35. # 回滚找到之前的文件
  36. # 确定文件在哪个 commit_id 上
  37. git log
  38. # 回滚的几种方式 soft/mixed/hard
  39. git reset --soft commit_id
  40. git reset --hard commit_id
  41. # 合并操作 merge,本地分支的代码 merge 进去 master
  42. git merge dev_{邮箱}
  43. # 另一种合并操作
  44. git rebase master
  45. # 合并是有可能会有冲突的
  46. # master 和 dev_{邮箱} 同时修改 test 的最后一行
  47. git rebase master
  48. # 远程合并提交 pull request/merge request,本地 master 拉取远程 master
  49. git pull

2 Fork 工作流

首先介绍一下 Fork 的流程和特点。

  1. Fork 工作流与其它工作流截然不同。与其使用唯一的服务端仓库作为「中央」代码库,它给予每个开发者一个服务端仓库。也就是说每个贡献者都有两个 Git 仓库,而不是一个,一个私有的本地仓库和一个公开的服务端仓库。
  2. Fork 工作流的主要优点在于贡献可以轻易地整合进项目,而不需要每个人都推送到单一的中央仓库。开发者推送到他们自己的服务端仓库,只有项目管理者可以推送到官方仓库。这使得管理者可以接受任何开发者的提交,却不需要给他们中央仓库的权限。
  3. 结论是,这种分布式的工作流为大型、组织性强的团队(包括不可信的第三方)提供了安全的协作方式。它同时也是开源项目理想的工作流。namespace 不同了,权限都在自己手里,成为 Fork 项目的 Maintainer。
  1. # 查看远程仓库
  2. git remote -v
  3. # 配置官方仓库的地址
  4. git remote add upstream git@gitlab.dxy.net:data-dev/recommend-system.git
  5. # 拉取官方仓库的分支到本地
  6. git fetch upstream master:master-dev
  7. # 合并远程仓库的代码
  8. git rebase upstream/master
  9. # 在本地 master 提交更新并且向远程仓库发起 pull request/merge request
  10. touch abc
  11. git add .
  12. git commit
  13. git push
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注