GIT入门指南
背景
入门
命令
工作流程
背景
好吧,我已经很久没写博客了。我想也许写点超级简单的内容能帮助我重新开始写作。几个月前,我参加了Code4Sac的开源项目黑客马拉松,这是我的第一次。那是一次很棒的经历,其中最宝贵的收获之一就是第一次和别人一起在项目中使用Git。我知道团队协作使用Git的方式有很多种,但我还是想快速列出一些你需要知道的命令,以及它们的作用,以便开始与他人协作。最后,我会用一个使用所有命令的基本工作流程示例来总结一下。
入门
好的,首先,你想启动一个新项目。那么,从哪里开始呢?如果我是 Git/GitHub 新手,想要最简单的设置,我会先在 GitHub 上创建一个仓库。这样做可以避免将本地机器上的现有项目与 GitHub 上的远程仓库关联起来。(当然,除了 GitHub 之外还有其他平台,但如果你是新手,那很可能就是从 GitHub 开始的。)
所以,请前往Github,为你的项目创建一个新的仓库,然后我们开始使用命令吧……
命令
git 克隆
使用全新的代码库时,你会看到一个名为“快速设置”的区域,其中包含指向你的代码库的链接。复制该链接。
或者,在较旧的代码库中,你会看到一个漂亮的绿色按钮,上面写着“克隆或下载”。你可以在那里复制链接。
打开终端,然后导航到你想存放新项目的目录。在这里,你将输入以下命令:
clone your_repo_link_here
输入此命令会在本地计算机上创建一个与仓库名称相同的目录,并将该目录链接到原仓库。(您也可以将仓库复制到当前目录,只需在命令末尾添加一个“.”即可。)
git pull origin master
对于新项目,你不需要拉取代码,但当你开始开发项目,或者与他人合作开发项目时,你需要确保你的代码仓库是最新的。你可以通过从远程仓库“拉取”代码来实现这一点。我们使用以下命令:
pull origin master
关于远程仓库的简要说明。当你在本地计算机上运行 Git 时,它就相当于一个仓库,就像 GitHub 上的仓库一样。术语“远程”指的是位于其他地方的仓库。通常情况下,尤其是在本教程中,远程仓库也指最初克隆仓库的“源”。但你也可以拥有多个远程仓库,例如设置在不同的计算机上,并能够从一台计算机更新所有仓库。在本例中,远程仓库指的就是我们最初使用的 GitHub 仓库。
所以,这条命令基本上可以确保你的本地仓库与 GitHub 上的仓库保持同步。在这个例子中,我们要从 origin 拉取代码,origin是项目克隆的远程仓库(我们是从 GitHub 克隆的,所以它是仓库的 origin),我们要拉取的是master分支中的代码。
将来,你可能会在代码库的其他分支上工作,在这种情况下,你可以通过输入以下命令从 Github 拉取代码git pull origin whatever_branch_name_here。
git checkout
好的!假设你现在要在你的项目上做一些工作。通常情况下,你会选择在一个分支上进行操作。分支本质上是项目在特定时间点的一个副本,它允许你在不直接修改主代码库的情况下进行修改。在生产环境中,你肯定不想直接编辑运行系统的代码,所以你会创建一个副本,在这个副本上进行修改,然后再将你的修改合并到主分支上,所有真正执行代码的地方就是主分支。
我最喜欢的创建新分支的方法是使用命令git checkout -b new-branch-name。严格来说,有git branch命令可以创建分支,也有git checkout命令可以切换到分支,但是git checkout -b加上名称的命令可以让你一次性创建新分支并切换到该分支!
git 添加
好了,现在已经过了几分钟,你也写了一些代码。现在你想把本地代码上传到 GitHub,确保所有内容都已同步。首先,你需要把想要上传的文件添加到“暂存区”。基本上,在此之前,Git 知道你修改了一些文件,但你必须告诉它:“好的,现在我要对这些文件进行一些操作。”
非常重要的一点是,你可能需要为项目根目录添加一个 `.gitignore` 文件。你可以在这里添加要自动忽略的文件。你肯定需要把 `<filename>` 文件node_modules以及其他你不想被跟踪的内容(例如 `.env` 环境变量,或者 Next、Gatsby、create-react-app 等工具生成的文件夹)都添加到这个文件中。你需要将文件名和/或文件夹名分别输入到每一行。
我通常会在处理每个特定方面/功能时定期这样做,所以我通常会通过输入命令一次性将所有文件添加到暂存区,git add *但如果您愿意,也可以使用命令逐个添加文件git add filepath/name_here。
git提交
文件进入暂存区后,我们就可以进行提交(commit),这就像在 Git 中保存某个历史点的所有内容。提交的好处在于,我们可以根据需要轻松回滚到特定的提交,还可以添加注释说明所做的更改,从而帮助我们跟踪代码的变化。
所以,要提交文件,我们使用以下命令:git commit -m 'descriptive message here'
基本就是这样。-m 参数允许我们紧接着添加描述。
git push
现在到了真正让一切同步的部分!
到目前为止,基本上所有东西都在你的本地机器上,但是一旦你提交了一次(或几次)提交,我们就可以将所有提交推送到 Github,在线的 origin/远程仓库将反映我们机器上的内容。
由于你应该在分支上工作,所以你应该使用以下命令:git push origin the_branch_name
推送代码到分支后,你可以在 GitHub 上看到该分支,并提交一个拉取请求(简称 PR),将你分支上的代码合并到主分支。将代码合并到主分支会将你的更改同步到主分支,主分支将成为所有人的主要代码来源,并且(在大多数情况下)也会用于生产环境。
如果你故意捣乱或者只是在做自己的项目,你可能会这样做:git push origin master
这会绕过 PR 流程,直接将你的新代码拉取到主分支。千万不要这样做。
工作流程
好了,基本上这就是我完成任务所使用的方法。但这里有一个需要用到所有这些方法的场景……
你和几个人正在合作一个项目,已经几个小时或几天没碰这个项目了。你坐在电脑前……
git pull origin master请确保所有内容都是最新的!您也可以使用以下命令从您正在处理的分支而不是主分支拉取代码git pull origin branch_name。git checkout -b some-branch-name创建并检出(转到)一个新的分支来做你的工作,这样你就不会搞砸其他人正在做的事情。git add *:添加所有你修改过的文件,以便在实际完成操作后进行提交。- `git commit -m '一些有用的注释':提交你的更改,以便你可以将更改发送到远程存储库。
git push origin branch-name将所有提交推送到 Github 远程仓库的特定分支。- 在 GitHub 上提交一个 PR。推送后,你的代码仍然位于一个单独的分支中,因此你需要提交一个拉取请求将其合并到主代码库中。
干得漂亮!你完成了工作,保持了所有内容的同步,希望没有搞砸别人的代码!
文章来源:https://dev.to/doylecodes/git-for-dummies-1a2i

