构建之法--初识Git
该作业来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103
GitHub地址:https://github.com/GVictory/softwarEengineering
前言:
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。使用Git,能够毫不费力的恢复到你想要的版本状态,比如这个周的文档被改的乱七八糟的,就可以通过GIt回退到上个周的版本,而且使用GIt,可以共享自己的文件,代码,其他人可以使用这个Git仓库,进行查看,修改,提交。其他人只要更新就能看到变化,同通过GIt来开发项目,能够有效的提高项目效率,缩短开发进程。接下来通过一下的八个操作来熟悉GIt。
所用软件及版本:
GIt Bash:2.15.1.2-64-bit.
notepad++:7.5.8-64-bit.
操作系统:window 10.
1.下载安装配置用户名和邮箱:
可以通过该网站https://git-scm.com/downloads/下载git,然后进行安装。安装完成后,即可通过git bash来设置用户名和邮箱。用户名和邮箱地址是本地git客户端的一个变量,每次commit都会用用户名和邮箱纪录,github的contributions统计就是按邮箱来统计的。
以下为配置说明:
git config -global user.name "gmuk":配置用户用户名
git config -global user.email "1427600836@qq.com":配置邮箱
配置完成后,可通过git config user.name 和 git config user.email查看当前配置信息。
2. 创建工作目录并通过git init命令把这个目录变成Git可以管理的仓库:
配置完用户名和邮箱后,就可以讲工作目录初始化成Git仓库,这里有两个方法创建工作目录,第一个是利用windows直接创建工作目录,第二种是通过git bash来创建工作目录,此处使用的第二种方法。初始化工作目录后,在该目录下会生成一个.git文件,这个就是git仓库,用来管理版本的,这个文件最好不要去动他,可能会造成git仓库的被破坏。
以下为配置说明:
pwd:查看当前工作目录
cd /e:进入/e目录,即e盘
mkdir testGit:在当前工作目录下创建名为testGit的文件夹
cd /e/testGit:进入testGit的目录
git init:初始化该文件夹为git仓库
ls -a:查看该目录下的所有文件
3. 在工作目录下准备文本文件,建议下载Notepad++代替记事本:
初始化git仓库后,就可以往git仓库放入文件,此处注意,需要放在被初始化的仓库的根目录,在本例子中即为testGit,在这里我们放入一个文本,为了防止出现乱码问题,这里我们建议使用NotePad++来编辑文本。
4. 组合用git add、git commit、git status 把文件提交到仓库:
添加完文件后,使用git add和git commit提交文件,并用git status查看状态。
以下为配置说明:
git add:将修改添加到暂存区。
git commit:将暂存区的改动添加到版本库中。
git status:查看工作目录和暂存区的状态。
5. 练习提交三个或以上的版本:
重复练习4,熟悉版本提交操作。
6. 组合使用git diff、git log、git reset命令进行版本管理与回退,观察文件变化:
经过多次的git commit后,我们可以通过git log来查看版本状态,其中加上--pretty=oneline,就会在一行内显示单个版本信息。在这里要注意一下,git diff用来查看工作区和版本库内容的区别,当刚提交完后,git diff不会显示任何内容。
以下为配置说明:
git diff:查看工作区和版本库的区别。
git log:查看版本日志。
git reset:版本回退。
7. 将Git仓库托管到GitHub网站上:
当需要将Git仓库交由第三方来进行版本管理时,可以将Git仓库托管到GitHub网站上,GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。要将Git仓库托管到需要获取SSH Keys,如果用户目录里没有SSH Keys,就需要创建一个,然后复制该目录下的id_rsa.pub,然后在gitHub上添加本地仓库的SSH Keys,至此,就完成了git仓库的托管。
以下为配置说明:
ssh-keygen -t ras -C "1427600836@qq.com":创建一个SSH keys
git remote add origin git@github.com:GVictory/softwarEengineering.git:将本地仓库托管到指定远程仓库。
8. 把本地仓库的内容推送到GitHub仓库:
将Git仓库托管到GitHub后,即可将本地的文件上传到远程仓库,这个就可以进行同步。在这里需要注意,当远程仓库第一次使用有其他本地仓库没有的文件时,需要将远程仓库的文件先更新到本地仓库,然后再一起和本地仓库的文件提交到GitHub仓库。步骤如下:先git getch origin,再git merge origin/master,当出现fatal时,再git pull origin master --allow-umrelated-histories,这样即实现了远程仓库和本地仓库的文件同步。
以下为配置说明:
git push -u origin master:将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push
git fetch origin: 从远程获取最新版本到本地,不会merge
git merge origin/master:将远端master分支的代码merge进本地分支
git pull origin master --allow-umrelated-histories:本地分支推送到远程分支