Git初学
最大的区别是:Git是分布式版本管理工具,SVN是集中式版本管理工具。
二:安装Git
Windows版的Git,从https://git-for-windows.github.io下载然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
三:设置Git的用户名和邮箱
$ git config --global user.name"your name"
$ git config --global user.email"[email protected]"
四:创建版本库(repositor)
五: 文件新建+状态查看+新增+提交+新增文件内容
1.首先我在D盘创建了一个文件夹git001,此时它既不属于git也不属于SVN,在文件夹同目录里打开git bash,然后的输入git init,之后会在文件夹里生成.git文件夹,此时,这个git001归于git管理。
2.在git001的文件夹里新建a.txt
3.查看git状态,因为此时a.txt还不属于git管理,所以会报错,输入git add a.txt再查询状态即可。
4.提交a.txt,发现报错,原因是每次提交都需要解释说明提交前后的变化。报错后,输入::q!退出,填写注释再提交,并且提交后查看状态,工作区一片和谐即没有要提交的东西了。
报错信息
5. 修改文件,命令是 vim a.txt,打开a.txt后输入内容,::wq!退出。
6. 退出修改之后,查看git status会显示红色a.txt说明还在工作区,需要重新add,add后变绿色说明在暂存区,和重新commit。
7. 输入cat a.txt可以查看文件内容。
六: 版本回退+版本号+对比不同
1.对a.txt进行5次修改并且每次都commit,最后查看内容.
2.查看a.txt的日志,版本号就是截图中的commit id即是commit后面一串数字。
3.输入vim a.txt再次编写内容,若突然中断,则,要先::wq!保存,然后再次继续时,若不记得之前修改到哪里了,输入git diff a.txt进行查询(之前修改的内容即会显示绿色)
4.输入git reset --hard HEAD^ 版本回退(即回到上次改过的那个阶段)。本来是update 03,现在变成update 02版本,若要回退三个版本则输入 git reset --hard HEAD^^^或者 git reset --hard HEAD~3
5.输入git reflog a.txt,则可以查看所有版本的id,输入git reset --hard 5578ef7,则进入特定的版本
6.若当对a.txt进行修改后,没有add和commit,则可以进行撤销,撤销类似于Ctrl+Z,撤销命令为:git checkout -- a.txt。
撤销之后,a.txt中的内容完全没有改变
七: 理解工作区+版本库+暂存区
工作区(working Directory):就是你电脑本地硬盘目录
版本库(Repository):工作区有个隐藏目录.git,他就是Git的本地版本库
暂存区(stage):一般存放在“git目录”下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
Git为我们自动创建的第一个分支master,以及只想master的一个指针叫HEAD
八: 删除文件,删完提交
1.删除文件:在a.txt 的相同目录下新建b.txt,通过命令:git rm b.txt 删除b.txt 后,删除后无需add却需要commit需要告诉本地库,b.txt已经删除
九: 分支(查看+新建+合并(分支名)+删除)
1. 开始的主分支是master,用git branch可以查看分支,git branch dev即是创建新的分支dev,切换分支的命令:git checkout dev ,切换后在a.txt上面做修改,add后commit之后再切换到master分支中,查看a.txt并没有变化,证明分支的变化并不会相互影响。
2.合并分支,当前是在master分支,现在将dev分支合并到master中,之后a.txt的内容就会发生变化。
十: 版本冲突
版本冲突一般由三种解决办法。一是都保留,二是保留它的,三是保留我的。
ps:Git常用命令
mkdir XX:创建一个空目录 XX指目录名
pwd:显示当前目录的路径
git init:吧当前的目录变成可以管理的git仓库,生成隐藏的.git文件
touch xx:新建xx文件文件
git add xx:把xx文件添加到暂存区
git commit -m “xx” a.txt :提交文件 -m后面的是注释
git status:查看仓库状态
git log:查看历史记录
git reset --hard HEAD^:往上回退一个版本
cat xx:查看xx文件内容
git reflog:查看历史记录的版本号id
git checkout -- xx:把xx文件在工作区的修改全部撤销
git rm xx:删除xx文件 之后要commit
git remote add origin https://github.com/qiuhaifeng01/a.git 关联一个远程库
git push -u(第一次要用-u以后不用)origin master:把当前master分支推送到远程库
git clone https://github.com/xxxxx 从远程库中克隆
git checkout -b dev:创建dev分支 并切换到dev分支上
git branch:查看当前所有的分支
git checkout master:切换回master分支
git merge dev:在当前分支合并dev分支
git branch -d dev:删除dev分支
git branch xxx:创建分支xxx
git remote:查看远程库信息
git remote -v查看远程库的详细信息
git push origin master:git会把master分支推送到远程库对应的分支上