开源开发对于每个人来说都是一个了不起的平台,无论您是开发人员、开源爱好者,还是想要进行实际软件开发的初学者。
现在,如果您希望为开源做出贡献,那么您必须具备有关Git和Github的工作知识。现在,Git 是一种软件,用作版本控制系统来管理/跟踪您正在处理的项目中的文件,或者如果您正在为一个项目做出贡献。
因此,使用 Git 和 Github,我们可以轻松管理文件、跟踪对不同文件的更改、管理项目中的工作流等等。这就是为什么它们是开源项目中如此重要的工具的原因。
今天,我们将研究一些有用的 Git 命令,以及如何将 Fork 与远程存储库同步。
设置我们的 Git 存储库
让我们首先创建一个 Git 存储库并了解所有这些 Git 命令。
让我们从创建一个文件夹开始,我们可以在其中包含不同的文件,例如文本文件、Excel 数据库文件、Markdown 文件、由源代码文件组成的文件夹(实际项目可能有许多不同的文件)。
但现在为了简单起见,让我们将这些文件保留为空。
我们可以使用Git Bash来编写 Git 命令,也可以使用内置了对 Git 支持的 VS Code。您可以在此处安装 Git,也可以查看如何将 Git Bash 与 Visual Studio Code 集成?。如果您是第一次使用 Git 来了解如何设置Git Bash 。
现在让我们通过右键单击并选择“ Git Bash Here ”来打开 Git Bash。
初始化我们的 Git 存储库
在这里,我们正在初始化我们的 Git 存储库,或者您可以说我们正在使我们的目录成为 Git 存储库。
Note: If you already have made a Git Repository then don’t use this command again else all the changes that you have made to this Repository will get re-initialized.
最初暂存文件
我们最初暂存这些文件,以便现在我们可以使用 Git 跟踪它们。
创建初始提交
让我们对我们的存储库进行初始提交。
现在让我们来看看一些有用的 Git 命令,用于使用命令行合并分支、分叉存储库、重命名和删除文件等等。
有用的 Git 命令
混帐差异
我们已经在上面初步暂存了我们的文件并进行了初始提交。
现在假设我修改了一个文件“Test.txt”并保存它。
让我们运行“ git status ”命令。
如您所见,它表明我们已经修改了该文件。现在让我们运行“ git diff ”命令,看看会发生什么。
这里使用“ git diff ”命令,我们实际上是将当前工作目录中的这个文件“ Test.txt ”(修改后的文件)与我们之前暂存的相同文件(即暂存区)进行比较。
因此,使用此命令,我们可以了解我们在当前工作目录中的任何文件中对暂存区中的相同文件进行了哪些修改。
如您所见,“ + ”符号表示我们在该文件(在我们的工作目录中)中所做的更改,“ – ”表示暂存区中文件中的内容。
这个命令不仅限于比较两个文件,我们也可以比较两个分支。
git diff — 分阶段
该命令用于了解上一次提交和当前暂存区中的文件之间的差异。要详细了解这一点,让我们修改一些文件。
现在让我们暂存这些文件并运行“ git diff – staged ”命令。
如您所见,它向我们展示了先前提交中的这些文件与暂存区中这些文件的更改版本(当前暂存但已提交)之间的区别。
这有助于查看先前的提交并对任何文件进行必要的更改。
使用 Git Bash 重命名和删除任何文件
删除/重命名文件可能有点令人困惑,有时也很乏味,尤其是当您的 Git 存储库有很多文件和文件夹时,因为您还必须暂存所有文件。
一种更简洁有效的方法是使用以下 Git 命令:
重命名文件
git mv
#
#
删除文件
使用这些命令,我们可以轻松地重命名/删除我们存储库中的任何文件,并且更改也会由 Git 自动暂存,因此您不必担心暂存这些更改。
git rm
git commit -a -m “”
使用此命令,我们可以直接提交目录中的任何 Tracked 文件,而无需将其放入 集结区。
Note: We cannot directly commit untracked files (newly created files) using this command. We first have to add that file to Staging Area(for it to be Tracked) and then commit it.
在 Git 和 Github 中同步分叉
开源开发世界非常活跃,因为有这么多开发人员为不同的开源项目做出贡献。因此,如果您正在为开源项目做出贡献,那么将您的分叉存储库与原始存储库同步变得非常重要。
假设您已经有一个Forked Repository (在 Github 上),您希望与原始存储库(您从中分叉)同步。
如果您尚未在本地机器上克隆 Forked Repo,则只需使用以下命令:
git clone https://github.com/
# filename: It is the name of file/folder for the Cloned Repository on your Local Machine.
现在我们将原始存储库添加为远程存储库(上游):
git remote add upstream https://github.com/
# add the original repository as remote repository called “upstream”
现在我们将从上游存储库中获取更改:
git fetch upstream
# Fetch the branches and their respective commits from the upstream repository.
我们现在将切换到fork 本地存储库的 master分支,并将上游存储库中的更改合并到本地存储库的 master 分支:
git checkout master
# switch to the master branch of your fork’s local repo
git merge upstream/master
# Merge the changes from upstream/master into your local master branch.
这将使您的fork 的本地存储库与 原始存储库。但是,如果您还想更新GitHub 上的 Forked 存储库,则必须推送主分支(或合并上游存储库更改的分支)。
git push origin master
# origin: forked repository on Github
就是这样!您在 Github 上的分叉存储库现在也与原始存储库同步了!!