声明:本文全部内容为原创内容,禁止在未经授权的情况下进行任何二次创作和修改,转载请注明出处。
这篇文章将会介绍如何使用Git和Github进行项目的不同版本与不同分支管理,并将以创建一个项目为例,介绍如何使用Git进行版本控制并将项目推送到Github上。本教程中以Linux系统为例进行操作,在Windows系统中可使用Git Bash代替Linux中的命令行。
Git是一个开源的分布式版本控制系统,可以高效、快速地处理从小型到大型项目的项目版本控制。 使用git,一个项目可以分为多个分支,由不同的开发者轻松开发,这有助于改善大型项目的开发。 此外,它允许开发者管理项目的不同版本,从而帮助开发者跟踪流程并在发生意外情况时恢复到稳定的版本以确保正常工作。
配置用户名和邮箱,这将作为在每次提交变更时记录的变更提交者的信息:
$ git config --global user.name "username"
$ git config --global user.email [email protected]
假设在主目录~/创建一个名为”hello_world”的项目。
首先,创建一个名为”hello_world”的文件夹作为工程的工作空间:
~$ mkdir hello_world
然后进入工作空间并初始化本地仓库(工作空间):
~$ cd hello_world
~/hello_world$ git init
创建README.md文件:
~/hello_world$ touch README.md
仓库由三个树组成。 第一个是工作目录,其中包含实际文件。 第二个是索引,它充当暂存区域。 第三个是HEAD,它指向最新的提交。
当工作目录中的文件发生变更时,在正式提交前需要将变更的部分添加到暂存区域。提交时,所有在暂存区域的变更将会提交到HEAD中,同时暂存区域将会被清空。
将变更添加到索引中:
~/hello_world$ git add <filename>
为了方便,可以将工作目录下的所有变更添加索引中:
~/hello_world$ git add .
将所有变更从索引区提交到HEAD:
~/hello_world$ git commit -m "Commit message"
现在最新版本的工程已经提交到HEAD中。
Github是一家全球公司,提供使用Git进行软件开发版本控制的托管。 使用Github,可以将代码在线推送并由更多开发人员进行开发。 此外,它还是著名的开源代码平台。
前往Github官网注册账户:https://github.com/
填写仓库名称、描述以及隐私选项:
提示:免费账户只能选择创建公共仓库。如果是学生,可以申请学生账户以免费创建私人仓库。
如果想将已经存在的本地仓库推送到这个仓库上,不要选择”Initialize this repository with a README”选项。
在terminal(mac和linux系统)或git bash(Windows系统)中生成电脑的SSH公钥:
~$ ssh-keygen -t rsa -C "[email protected]"
邮箱地址是注册Github时的邮箱地址。
然后,”id_rsa.pub”文件将会生成并存储在terminal提示的路径中,通常为~/.ssh。
为这个公钥添加一个标题,并将id_ras.pub中的全部文本复制到这个页面中:
SSH公钥通常以”ssh-rsa”开头,以邮箱地址结尾。
然后可以在SSH公钥列表里看到已经添加的公钥。
将Github仓库添加为本地仓库的远程仓库:
~/hello_world$ git remote add origin [email protected]:<username>/hello_world.git
这个地址可以在github仓库找到:
运行如下命令推送:
~/hello_world$ git push -u origin master
分支用于开发彼此分离而不同的功能。默认分支为”master”,在创建仓库的时候就已经自动创建。可以创建新的分支来开发新的功能,并且在完成后将该分支合并到主分支”master”中。
新建分支并切换到该分支:
~/hello_world$ git checkout -b <branch_name>
~/hello_world$ git branch
所有分支都将被列出,并且当前分支前会以”*”标记。
~/hello_world$ git checkout <branch_name>
~/hello_world$ git branch -d <branch_name>
~/hello_world$ git push -u origin <branch_name>
~/hello_world$ git pull
不同分支可以相互合并,如下命令可以将一个分支合并到当前分支:
~/hello_world$ git merge <branch_name>
如果想要将一个分支合并到master分支中,需要先切换到master分支后再合并:
~/hello_world$ git checkout master
~/hello_world$ git merge <branch_name>