摘要
这篇文章将会介绍如何使用Git和Github进行项目的不同版本与不同分支管理,并将以创建一个项目为例,介绍如何使用Git进行版本控制并将项目推送到Github上。本教程中以Linux系统为例进行操作,在Windows系统中可使用Git Bash代替Linux中的命令行。
第一部分:使用Git
什么是Git
Git是一个开源的分布式版本控制系统,可以高效、快速地处理从小型到大型项目的项目版本控制。 使用git,一个项目可以分为多个分支,由不同的开发者轻松开发,这有助于改善大型项目的开发。 此外,它允许开发者管理项目的不同版本,从而帮助开发者跟踪流程并在发生意外情况时恢复到稳定的版本以确保正常工作。
首次使用配置
用户名和邮箱
配置用户名和邮箱,这将作为在每次提交变更时记录的变更提交者的信息:
$ git config --global user.name "username"
$ git config --global user.email [email protected]
创建一个新的Git项目
假设在主目录~/创建一个名为”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
什么是Github
Github是一家全球公司,提供使用Git进行软件开发版本控制的托管。 使用Github,可以将代码在线推送并由更多开发人员进行开发。 此外,它还是著名的开源代码平台。
注册Github账户
前往Github官网注册账户:https://github.com/
创建一个新的Github仓库
步骤一:在菜单中选择
在菜单中选择”New Repository”选项:
步骤二:完成相关信息填写
填写仓库名称、描述以及隐私选项:
提示:免费账户只能选择创建公共仓库。如果是学生,可以申请学生账户以免费创建私人仓库。
如果想将已经存在的本地仓库推送到这个仓库上,不要选择”Initialize this repository with a README”选项。
允许你的电脑访问Github账户
步骤一:编辑账户设置
选择账户菜单中的”Settings”选项:
步骤二:点击”SSH and GPG keys”选项
步骤三:点击”New SSH key”选项
步骤四:生成电脑的SSH公钥
在terminal(mac和linux系统)或git bash(Windows系统)中生成电脑的SSH公钥:
~$ ssh-keygen -t rsa -C "[email protected]"
邮箱地址是注册Github时的邮箱地址。
然后,”id_rsa.pub”文件将会生成并存储在terminal提示的路径中,通常为~/.ssh。
步骤五:将id_rsa.pub中的所有文本复制到Github账户的公钥列表中
为这个公钥添加一个标题,并将id_ras.pub中的全部文本复制到这个页面中:
SSH公钥通常以”ssh-rsa”开头,以邮箱地址结尾。
然后可以在SSH公钥列表里看到已经添加的公钥。
将本地仓库推送到Github仓库
为本地仓库添加远程仓库
将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>
将分支推送到Github仓库中
~/hello_world$ git push -u origin <branch_name>
将本地仓库更新到与Github仓库同步
~/hello_world$ git pull
合并
不同分支可以相互合并,如下命令可以将一个分支合并到当前分支:
~/hello_world$ git merge <branch_name>
如果想要将一个分支合并到master分支中,需要先切换到master分支后再合并:
~/hello_world$ git checkout master
~/hello_world$ git merge <branch_name>