GIT使用
一、git和svn的区别
svn是中央集权类的版本控制工具。所有的版本都存在服务器上,用户本地只有自己当前同步的版本,如果不联网,是不能查看到历史版本信息的。所以要时常备份服务器,避免数据丢失
git是分布式的。所有的版本信息也可以同步到本地,每个人都拥有全部的代码,本地就可以看到历史记录,可以离线本地提交,联网后再push到服务器上即可。
二、git的历史
linux开源系统-->所有人都去给linux提交代码,都是一个人维护的,长达十年0.0 ,然后就用了一个bitkeeper的版本控制工具,解放了维护代码的一个人,给各地的程序员都可以自己提交代码
并且在后来,linux开源社区尝试破解bitkeepper,两周内就研发出了git,从此开源的git版本控制工具就面试了
三、下载git
因为git官网下载很慢,可以从阿里镜像下载https://npm.taobao.org/mirrors/git-for-windows/
傻瓜式安装
git bash:linux命令使用git
git cmd:win下使用
git gui:ui界面
四、gitbash
git config -l 查看所有的配置信息
git config --golbal --list 查看个人的配置信息
git config --system --list 查看系统的配置信息
第一个命令结果是第二个和第三个的合集
【必备操作】配置自己的用户名和邮箱地址
git config --global --user.name=LYB
git config --global --user.email=xxxxx@qq.com
五、git的工作原理
本地分为,工作目录(平时存放代码的地方),暂存区(本质是一个文件),Repository本地仓库区(比如Head中指向的ref指向的节点,比如主分支,或者你自己的分支),Remote(远程仓库)
一般实际情况并不是自己给自己的Remote进行提交,而是,协同办公,每个人啦一个分支,自己往自己的分支上提,提完了在合入到总的分支上。每次在你修改代码的时候,需要先同步你自己的分支和总分支上的代码。
否则很容易出冲突。
所以需要在TortoiseGit的设置里留上两个远程仓库的地址,分别是你自己的fork的远端,和总的代码库的远端。他们默认的分支都是master。你可以自己fork之后重新自己建立一个分支,这样便于自己识别他们的不同。然后拉自己的远程仓库的代码到本地。
拉完代码,可能过了几天你才开始做代码修改,需要先同步,这个的目的是让你的分支和总库代码的内容此刻是一样的,保证自己在最新的代码基础上进行开发,也避免你提交上去可能会与别人修改同样的文件的同一行,就容易产生冲突
比如,有人修改了add.txt然后你没有先同步,就修改了add.txt然后你本地就是红色的,如果你们改了同一行,提交合入的时候会提示冲突无法合入的。你可以先修改,再同步一下实验,发现
这个错误其实是说修改后是不能同步两个分支操作的, 连同步都失败了。那怎么办呢?我常用两个办法,1.把自己修改的文件先移出去,然后重新拉取自己的分支的代码,再同步。2.本地解决冲突。需要变基
如果提示说同步失败,你可以点拉取这里下面的变基,下图可以看到,变基的意思就是把你自己的分支快进和远端分支变的同步。所以变基是同步里面的一个功能
点开始快进,弹出来这个,这里的stash就是把总仓库的,和你本地修改的冲突的地方都保存着,你可以自己修改冲突的地方之后重新提交。
后面这些stash谈不弹出的不重要,重要的是你会看到本地的文件变成了带有感叹号的,这就是冲突的文件了
然后重新提交,点击这个文件,右键,编辑冲突
在想要使用的一遍的一行上点一下,然后点右键,使用本行还是什么的,然后保存,点标记为解决
然后就可以提交了