Git简介及简单的使用

1.Git是什么

Git是目前世界上最先进的分布式版本控制系统。
版本控制系统
自动记录每次文件的改动,还可以多人协作编辑。
类似于以下这个表格。
Git简介及简单的使用_第1张图片

2.工作区,暂存区,版本库

工作区: 就是电脑里的文件夹
暂存区: 下图的stage就是暂存区,add之后首先将文件的修改存在这里
版本库: 创建版本库的时候,自动创建master分支
Git简介及简单的使用_第2张图片

3.Git常用命令

安装好Git后,设置用户信息

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

创建版本库

//切到指定目录
$ git init

添加文件到暂存区

git add readme.txt  //可以多次把修改过的文件添加到暂存区

一次性将暂存区所有文件提交文件到仓库

$ git commit -m "注释"

4.版本回退

通过git log命令查看历史版本

$ git log

Git简介及简单的使用_第3张图片
版本回退命令

//HEAD指的是当前版本 HEAD^就是上一个版本 HEAD^^就是上上次版本
//HEAD~100就是前100次版本
$ git reset --hard HEAD^

当我们回退版本后,后续版本使用git log是看不到了,但这不意味着说无法版本前进。可以使用$ git reflog,这个命令记录了每一次的命令

$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file

这个时候有了版本的id,就可以再次穿梭到未来。

$ git reset --hard 1094a  //只需要输入前几位id

5.修改

暂存区管理的是修改,如果文件修改后,不添加到暂存区,直接提交到仓库,这样实际上并没有提交到仓库中。
撤销修改

$ git checkout -- readme.txt

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

删除修改
直接在工作区把文件删除了。有两种情况,一误删,二确实要删除。
误删:

$ git checkout -- readme.txt   //会把误删的文件从仓库里拷贝一份到工作间

删除仓库里的文件,rm先删除,再提交。

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

6.远程库

使用GitHub,码云等仓库托管网站,在远程建立一个仓库。
本地版本库关联远程库

$ git remote add origin <远程库地址>
//将本地仓库的数据推送到远程库
$ git push -u origin master

克隆远程库

$ git clone <远程库地址>

7.分支

每个分支都是一条独立的时间线,互不影响。
git用HEAD指针指向当前分支,一开始默认指向master
Git简介及简单的使用_第4张图片
分支可以保证自己独立工作,等到自己工作完成再合并到主分支,安全又不影响别人工作。

查看分支:git branch

创建分支:git branch 

切换分支:git checkout 

创建+切换分支:git checkout -b 

合并某分支到当前分支:git merge 

删除分支:git branch -d 

合并分支
当出现合并冲突时就需要手动进行解决冲突后再进行提交。

$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt   //readme.txt出现合并冲突
Automatic merge failed; fix conflicts and then commit the result.
``

你可能感兴趣的:(Git)