Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
GitHub官网注册:https://github.com/
Git客户端安装:yum install –y git
自行注册github的账号,安装好git后就可以开始我们本次的学习之旅啦!
登录自己的github账号,点击首页的New repository进行仓库的创建
输入仓库名及描述,选择Public,完成创建
然后我们在安装好git的机器上创建github/linsuren目录并进入
mkdir -p github/linsuren
cd github/linsuren/
在该目录下创建README.md文件,这是一个说明文件,支持markdown语法
touch README.md
vi README.md
然后写入以下内容
# linsuren repository
for linsuren test
这个时候还只是一个普通的文件夹,没有和git产生关联,下面我们就要进行git初始化
git init
可以看到,该目录下多了一个.git的隐藏文件夹,初始化成功。
可以看到我们当前位于master分支,README.md文件还未被跟踪,git status是个很常用的操作,可以查看当前项目的状态,后面会经常使用到。
下面我们对README.md文件进行提交,并再次查看状态
git add README.md
git status
可以看到,我们进行了初始提交,将README.md存放到了暂存区,这个时候服务端只知道有一个被跟踪的文件,但是具体是什么内容还不知道,需要我们将它提交到上去。
git commit README.md -m'增加初始化文件'
执行上面命令进行本地提交,-m
是添加注释的意思
这个很容易理解,因为我们没有登陆,所以git并不知道我们以后要将文件推送到谁的github上,我们可以通过自己github的邮箱和用户名来设置和github的连接
git config --global user.email [email protected]
git config --global user.name linsen0731
commit成功,注意此时只是在本地提交成功,远端的github上并没没有我们刚才提交的文件。
执行此命令可以查看提交历史,我们每次提交都会产生一条记录,包括一个唯一的commit id、提交人、提交时间等信息
通过log我们可以很方便的看出整个代码版本变化的情况
进行了本地提交,下面就是如何将本地的文件关联到我们的github上,执行以下命令新建一个远程仓库
git remote add origin https://github.com/linsen0731/linsuren.git
需要将linsen0731替换为你github的用户名,linsuren替换为前文中你自己在github上创建的仓库名字
至此,本地和远端成功关联
这一步就可以实现本地到远端的推送,执行
git push -u origin master
此过程需要输入github的账号密码,同步成功,查看github上的变化
验证成功
和push相对的,就是pull了,意思是将远端仓库的代码拉取到本地。假设有这样一个场景,我和旺财都需要对刚才push上去的文件进行操作,在我push上去之后,旺财直接在远端增加了一些代码
接着我们在本地把修改的代码同步过来
git status
git pull
与同步前对比变更
查看当前更改变更
关于git diff内容比较多,在此不做太详细,具体请参考网上相应文章
这个时候我觉得旺财加的这一句没毛线用,于是把我是旺财,这一行是我添加的,哈哈哈哈
这行删掉,然后再查看下状态
可以看到,文件已经被修改,但是git还不知道,执行git add README.md
命令将文件放进暂存区,再次查看状态
文件变更git已经知道了,但是我还没有进行提交,然而就在我刚打算提交的时候,旺财发现了,他不让我提交,说就要保留那句话,我说好吧,那就留着吧,这个时候就要把文件撤出暂存区
git reset HEAD README.md
文件已经撤出了暂存区但是旺财还是不愿意啊,他让我一定要在本地把那句话加回来。
这个时候就可以使用这条命令用github端的代码覆盖本地文件
git checkout README.md
嗯,这句话终于又回来了,和远端保持了一致,看到这里,旺财心满意足地走了
既然旺财不让我改,那我就新建一个分支好了
git branch feature1
git checkout feature1
git checkout master
git branch -d feature1
关于git的常用命令就介绍这些,建议大家多加练习,以免以后在正式开发环境下做出一些不可恢复的操作。