git操作

版本控制工具我用的并不多,之前比较流行的svn是,现在的git也是。由于最近的工作由我来发布gitlab上的版本,对于git的使用变得多了起来,很有必要写点东西记录下来。
首先,有这样一个问题,什么情况下我们需要版本控制?
无非就是:

  1. 项目复杂度太高,需要检测变更,便于自己的还原操作。
  2. 多人协作的情况。
    ps:一般情况下第二个原因要多一些

一、开始

而git和svn的区别在于,git在本地也能有所谓的仓库。
那么,现在就开始说说步骤,首先下载安装git,然后打开命令行工具输入

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

PS:里面的name和邮箱,请填写自己的邮箱
如果想看自己git的设置,可以使用

$ git config --list

接下来,cd到需要版本控制的目录,运行

$ git init

这时候会在目录下面生成隐藏文件.git


git操作_第1张图片
image.png

二、版本控制

接着,往上面添加两个文件


git操作_第2张图片
image.png

然后运行

$ git add a.html

这样a.html文件添加到监测里面,如果输入

$ git add .

会添加所有文件到监测
与之相反的是,如果要删除添加到缓存的文件,需要使用

$ git rm --cached [filename]

这时我在两个文件的主体部分都写上xxx,然后提交


image.png

由于只是添加了a.html文件,b.txt文件的变动并不会被检测到。
一般情况下,会使用全部添加来进行,但是有些文件不想监测它的变化,比如通用的index.js经常要调试,每次处理冲突会很麻烦,这个时候就可以新建一个文件名为.gitignore,在里面配置相应的规则就可以忽略不该要的部分了。

git操作_第3张图片
image.png

我这里的文件就将bin目录下的文件全部忽视了
OK,我这里添加完两个文件后,再提交一次,然后就可以使用

$ git log

来看看做了哪些提交了

git操作_第4张图片
image.png

回退在版本控制里面很重要,这样可以定位到自己之前做的一些错误的修改,在git里

$ git reset --hard HEAD^

可以返回上一个版本,而

$ git reset --hard [version]

传入你要的版本号,就可以回退到想要的版本了,而对这次回退返回的话,就可以使用

$ git reflog

查看你做的版本改动。

注意:
1.只有add过的change才能commit
2.在add前取消修改可以使用git checkout -- [file]

三、远程仓库

这个关系到多人协作,非常重要。这里我选用的测试平台为码云,原因嘛,速度快且能私有。
注册好账号之后,建一个项目。

git操作_第5张图片
image.png

通讯协议有http和ssh,为了避免每次都要输密码,这里使用ssh协议,首先就是添加公钥,具体看看官方文档 http://git.mydoc.io/?t=154712

特别注意的是在使用图形化工具tortoiseGit的时候要生成符合该工具格式的私钥,然后才能正常的进行版本控制

第一次我们操作的时候,一般会使用,也就是下图的地址。

$ git clone [url]
git操作_第6张图片
image.png

另外一个方法就是将本地仓库(用git init过的)和云端关联起来

$ git remote add origin [url]

同时我们也可以使用

$ git remote -v

来查看远程仓库


image.png

使用

$ git push 

来将本地的仓库推送至远程,当然这里是默认的推送,可以使用

git branch --set-upstream-to  origin/

让本地的分支和远程的分支就建立起了联系

四、分支

版本控制另外一个很重要的点就是分支了,分支使多人协作成为了可能


git操作_第7张图片
image.png

这里,使用

$ git branch A

创建了A分支,我们可以使用

$ git checkout A

切换到A分支,修改commit


git操作_第8张图片
image.png

再切换到主分支


git操作_第9张图片
image.png

修改的地方消失了,这个时候我们也修改这个文件,并且提交这个文件,然后合并A分支,
$ git merge A

出现冲突


git操作_第10张图片
image.png

这里我选择保留两个修改,然后再提交
要删除分支,使用

$ git branch -d [name]

下面和之前的结合起来,比如把本地的a分支上传到远程的仓库的A分支,先切换到本地A分支,然后

$ git push origin A

这样就会在远程建立一个分支A,并且是本地A分支的内容。
如果要删除远程分支A,则可以使用

$ git push origin :A

仅仅多了一个冒号,语义就是大不相同。

你可能感兴趣的:(git操作)