Git 命令说明:推、拉、分叉、合并



我即将为一个已经知道如何使用 Git 的人开始一个类的团队项目......我以前从未使用过它,我正在努力理解整个过程如何工作背后的概念。

假设团队中的某个人将一些样板代码上传到存储库。我想fork吗?然后自己处理它,最终push到共享存储库?如果两个人在同一个文件上工作并且存在一些差异,会发生什么,如何解决?pull/fetch从何而来?

对不起,如果我的问题不是那么清楚...我只是想确保我了解如何使用 Git 的整个概念。GitHub 和 google 查询上的教程并没有那么帮助我了解如何使用 Git 进行团队项目设置。谢谢。

没有git fork命令,也许你想git clone?对于此答案的其余部分,我假设您的意思是git clone因为这是拉取存储库的本地副本的命令。

常规工作流程

通常会发生的情况是,有人会在某处的服务器上创建一个 git 存储库(手动使用某处服务器上的git init --bare或使用 github 为您管理它),你们都将将其用作中央服务器。这是远程存储库,默认情况下称为。如果由于某种原因您丢失了克隆的原始存储库,您可以随时将/path/to/local/directory 复制到某处,然后让其他人从中克隆。你的同事可能已经这样做了,你必须问他们。

设置远程存储库后,每个开发人员都可以克隆它。要克隆存储库,请在合理的位置创建一个空目录,安装 git,然后运行 git clone protocol://user@urltorepo.com /path/to/local/directory/ 以拉取存储库的本地副本并将其粘贴到/path/to/local/directory 中。完成此操作后,您将拥有一个完全独立的存储库,该存储库反映克隆时存储库的状态。然后,您将git commit所做的更改,将它们git push到遥控器,然后其他人可以git pull您的更改。

克隆后,关于如何使用 git 就没有硬性规定,因为 git 更像是一组工具,而不是决定某个工作流程的东西,所以问问你的同事他们如何使用 git。然而,大多数时候,每个开发人员都会使用 git pull 从远程提取最新更改,进行更改(通常在单独的本地分支中),git commit它们,然后使用 git push 推送这些更改。

分支

每个开发人员都可以使用 git branch foo 创建本地分支。这太棒了,因为它允许您将 master 和代码分开,直到您明确想要将它们合并在一起。要创建分支:

git checkout master
git checkout -b foo #This will create the foo branch and then change to it
# Do some work
git add .
git commit #This commits the changes you have made to foo

并部署分支:

git checkout master
git pull #Make sure that you are up to date
git merge foo
# Fix merge conflicts and commit if merge says that you have conflicts
git push

过程应如下所示:

  • 拉取文件
  • 编辑它
  • 提交它
  • (它提交到您的本地仓库)
  • 再次拉取它(如果有任何冲突,您将收到通知)在这种情况下,您可以执行以下命令(在您的存储库工作文件夹中的 GitBash )解决它:

    git 合并工具

它将运行您在 .gitconfig 文件中配置的合并工具

之后,您可以推送更改。

因此,在推送更改

之前,需要先拉取更改,以便解决发生的任何冲突,然后可以推送更改。

希望它能消除你的困惑!!

--干杯!!!!

最新更新