作为一名程序员,一定会用到版本管理工具,git作为现在最流行的分布式版本管理工具,还是很有必要了解和掌握的。先上目录。
我们听说过git,还有github,这两个有什么关系呢。git是版本管理工具,github是远程仓库。我们用git实现本地项目版本管理,github是存放项目的远程仓库平台。
学习之前,我们要了解一些概念。仓库,分支。仓库就是存放项目的地方,初始化后git可以对仓库中的项目进行版本控制。分支是用在多人协作的,比如我和小张同时做一个项目的不同部分,我们再开发周期中各自在一个分支上,两个人都完成之后再合并,这样相互独立,不会干扰,分支我们暂不介绍。
1、git
下面将介绍git的安装及常用命令,我的演示环境是Windows,Linux和Mac下的操作都是大同小异。
首先安装git,从官网下载安装包 https://git-scm.com/downloads按流程进行安装,安装完成后从开始菜单里查看是否安装完成,或者在任意一个文件夹右键,看到Git GUI Here和Git Bash Here,表明就安装成功了。
Git GUI Here是可视化的操作工具,Git Bash Here是命令行操作工具,相当于Windows的cmd,下面介绍的都是使用Git Bash Here,如果想了解Git GUI Here,可以参考以下教程。
http://www.runoob.com/w3cnote/git-gui-window.html
https://blog.csdn.net/u011572517/article/details/50537407
打开Git Bash Here,配置用户名和邮箱,用作机器唯一识别,用global做全局配置,此后所有文件夹都采用这样的配置。
至此,我们git环境就搭好了。接下来介绍一些常用git命令。
git init:将当前目录初始化为git仓库,执行之后会生成一个.git目录,用来追踪管理版本库的,它默认是隐藏的,修改该文件里的东西会破坏仓库,为了不手滑,平时操作时还是将这个目录隐藏。
git add:将文件加入git仓库,指定文件用git add filename,添加所有文件用git add . 。
git commit –m “message”:把文件提交到仓库,添加说明信息。git add只是把文件放在git的暂存区并没有提交到仓库,git commit才是提交。可以多次add再执行一次commit,git会把暂存区的所有文件提交到仓库。暂存区相当于文件中转站。
git status:查看当前工作区状态,工作区就是你现在本地的文件夹,git status会告诉你哪些文件修改了,新增或删除了哪些文件。
git diff:告诉你具体发生了什么变动。
git log:提交日志,记录我们的提交历史。根据对应的commit id可以改变到特定版本。
其实在Git Bash中执行git --help,就会告诉你一些常用的指令。
git以及所有的版本管理工具只能追踪文本改动,对于图片、视频等二进制文件git只知道改动了,但是无法知道到底改了什么,word也是二进制的,在开发中,如果需要文本,推荐使用notepad++。
2、git与github相互关联
git与github之间实现文件传递,需要SSH Key。执行
$ ssh-keygen -t rsa –C "你初始配置的邮箱"
生成SSH Key,如下所示,
过程中会提示生成文件的保存路径,在保存目录下,会生成一个名为.ssh的文件夹,文件夹下有两个文件id_rsa(私钥)和id_rsa.pub(公钥)。我们用到的是id-rsa.pub。
登录github(没有的注册一个),在Settings里添加好SSH,就可以实现本地和github远程库的关联了。
(1)从本地提交到github远程库
首先需要在github上新建一个仓库,在自己的主页点击new repository,新建一个仓库,
仓库建好之后,我们在本地Git Bash上执行命令
$ git remote add origin https://github.com/Lindsayyyy/gitlearn
origin 后面接的是项目地址,这样我们就将本地的项目与github远程库关联起来了。接着用
$ git push -u origin master
推送项目文件,-u在第一次推送时用到,以后修改文件推送不需要加-u.这样我们就将本地文件novel.txt推送到github上了。
注意事项:
git remote add origin出错,你可能太匆忙只在本地写了文件,没有进行add和commit操作。
git push -u origin出错,你的github远程仓库有你本地没有的文件,比如我的README.md是在github上创建仓库时自动生成,我们需要先git pull --rebase origin master将远程仓库同步到本地再push.
划一下重点:(1)在github上有一个仓库。(2)关联git与github仓库(git remote add origin )。(3)推送和修改文件到github(git push)
(2)从github上将项目下载到本地仓库
$ git clone https://github.com/Lindsayyyy/hello-world
3.github学生账户申请
项目存放在github上,是公开的所有人都可以看到,如果你不想公开,你就要购买私人仓库,长久下来费用是比较高的。不过,github提供了学生开发学习包,只要你是在校生,就可以申请学生账户,拥有免费的私人仓库。
申请参考教程:https://blog.csdn.net/qq_36667170/article/details/79084166
以上就是我的学习总结,想要更细致地学习,可以参考廖雪峰大神的教程:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000