Git

Git

学之前先看一张图

工作区就是你建立的文件夹,比如新建个test文件,版本库就是add commit之后乱七八糟的东西

Git的使用步骤:

1.下载与安装,去官网安装就行了 傻瓜式安装,一路点next

2.随便建立一个文件夹,比如说test,git的要求是:你要想让它帮你进行管理,必须先有一个文件夹,然后右键 git bash here

3.git config --global user.name/email

4.git init 对一个文件夹进行初始化,这个初始化就是为了让git对这个文件夹进行版本管理工作,而初始化完成后,在当前这个文件夹下面会有一个隐藏的.git文件,这个文件夹就是我们所说的版本库,现在就可以用git对其下的文件进行版本控制,比如说进行一个版本的回退等等

Git基础操作

git status 查看工作区的状态,一般来说有两种状态

1.nothing to ...:没有被提交的信息,当我们新建个test.txt文件时 在输入git stauts 时候 就会出现以下状态

2.untracked files :未被追踪的文件,就是还没被git给管理起来,这个时候我们就需要git add test.txt,这时候文件就会add到暂存区,接下来在进行git commit -m "first fils" 把文件从暂存区commit到提交区,这时候我们的文件才真正被git管理起来,而我们commit到提交区的文件都会有一个id号,根据这个id 就可以进行版本切换了

所以说:要想git对你的文件进行版本管理有经两个步奏,第一个 git add git commit -m ,可以随时使用git status 在工作区进行状态查看

Git log 和版本切换

git log 就是查看信息的它有三个状态

commit: 这就是文件的id

author: 就是前面的配置,git.globle --user.name

date: 提交的日期

打出的信息太多,能不能简化一下呢,答案是可以的

git log --pretty online(可以自己试一下)

如何进行版本的切换

git reset --hard id就可以进行版本的切换了

git reset --hard HEAD^ 回到上一个版本

git reset --hard HEAD^^ 回到上上个版本

git reflog 进行所有的版本id查询

分支

master分支是主分支,也就是git 为你默认创建的分支,既然有主分支就一定有其他的分支,git的强大之处就是一个多人协作开发的概念,不仅是一个人开发进行版本控制,还可以多人同时开发进行版本控制,

那么如何创建一个分支呢?

git checkout -b 分支名: 创建分支

git checkout 分支名: 切换分支

git branch : 查看所有分支,并且可以看到当前所处的分支

git branch -d 分支名 :删除分支(会有不能删除的提示,这个提示是告诉你需要进行分支合并)

git branch -D 分支名:强制删除

你在分支上写的内容,进行commit提交,当你切换到主分支的时候是看不到的

分支合并和冲突解决

主分支master我们不会去动,只会用于版本的发布,各自在自己的分支开发完成之后,需要将开发的内容合并到主分支上去

你要在主分支上进行合并,在master分支上进行:git merge 分支名,这样就能完成我们的合并了,这时候你在git branch -d 分支名,就能删除分支了

那在进行多人开发的时候,我们有时会碰到合并冲突问题,当我们合并到master分支上的时候,git会报一个冲突,为什么会合并不上呢?这个时候我们查看一下日志,的确没有合并上去,而文件里面有点变化,这就产生了冲突,我们就要进行手动修改了,当我们修改之后,然后查看一下git status 然后再进行add,commit的操作,在查看下log,发现已经合并,到此,冲突解决掉

打标签

commitid 不容易记住,能不能用一种独特的方式去记住每个版本?

想要给最新的一个版本打上标签,git tag v1.0,将最新版本commitid对应上v1.0

查看当前标签总数:git tag

给之前错过的commitid打标签: git tag v0.8 commitid

如果还嫌不够 那我们还可以给标签加一个说明:git tag v1.0 -m "这里是说明"

删除标签:git tag -d v1.0

补充:HEAD就是表示当前最新的一个commitid,也就是最新的指针指向

前面我们说的冲突也是跟HEAD的指向有关

—— The end ——

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181116G1JW8700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券