git这个工具呢,是用于版本管理的,一个人开发的时候可能没有什么影响,都是你一个人在管理和维护.但是当你进入一个团队后那么就变得不同了,共同开发一个项目那么你就要与别人协作,完成开发的相关工作.所以问题来了.你写的代码和别人写的代码怎么合到一起呢,对,我们有ctrl+c,ctrl+v,这个操作我还是会的.那么如果修改的是同一个文件呢,那么是不是要选取更合理的,替换掉原来的代码.想想都是一个非常繁琐的工作.有这个需求,那么就市场,有市场就会有人去开发这个工具,所以相关的管理工具就出来了.其中用的较多的有svn,git.现在来说更多的用的还是git.至于为什么这里就不多说了,这里只讲用法,原理有机会再说.
这里针对的是刚出来工作的大学生,因为在学校里的开发,更多的还是个人,没有用到git这类工具(当然这里说的是大多数的).所以刚入职公司,要学的就是git这个版本管理工具.这里算是提前给大家补充这块的知识,学会了进入公司,要少花一点时间,同时也是让自的开发更加的规范.
只讲常用的命令,不常用的不讲.
安装这里也不讲了,用windows的多,所以下一个.exe文件,傻瓜式的下一步,解决问题.
讲一下安装完成后的操作.
- 克隆代码的命令,这个是一定得会的,因为第一次你去拉取代码就是用的这个命令.别再用那种下压缩包来解压这种操作了,看着真的太low了.直接git clone 加地址就可以了.
地址有两种形式.
// http的
https://github.com/MengTo/Spring.git
git clone https://github.com/MengTo/Spring.git
// ssh的
git@github.com:MengTo/Spring.git
git clone git@github.com:MengTo/Spring.git
去拉这种开源项目没有什么问题,但是如果是公司私有的,那么你一定要在项目组中才行.
- 然后就开取开发,编写代码,之后怎么提交问题.
在提交之前要做一个事情,那就是完善一下个人信息,要不交上去了,谁知道是你提交的.要用到两个命令.其实也就是对配置文件的更改,所以可以直接更改配置文件,当然不去动配置文件,那么直接用命令修改要更改的配置也行.
git config --global(这个是图个方便,如果这电脑多个人在使用,同时开发不同的项目,那么就不要用这个参数了.这是全局变量) user.name "手握日月摘星晨,世间无我这般人",这名字真好.
git config --global user.mail "nb@gamil.com"
这样就可以了.
克隆下来的项目,一般来说项目的仓库地址是配置好的,那么就可以不用配置了.不过也有直接开发的项目,然后直接往仓库推的,那么就有一个添加仓库地址的命令.
image.png
image.png
// 先查看一下有没有地址
git remote -v
看这是添加好的,如果没有怎么添加呢.
git remote add 名称 地址
eg: git remote add dev git@github.com:MengTo/Spring.git
//加错了怎么办,那就删除嘛
git remote remove dev(这里直接给名称就可以了)
//然后要做的是新建一个分支,因为不会直接在develop分支上面直接做开发的,如果你遇到这样的公司那么直接跑路,因为太不规范了.以下就涉及到分支的概念了.
一般有以下的两种
- 一种是直接fork到自已帐户下,然后开发,再merge仓库的代码,然后推上去,提mergerequest.管理员审核,如果可以,就会合代码.
- 另一种就是直接通过分支来解决.通过拉新的分支来开发,然后merge开发分支,之后提交代码提合并请求.
但是共同点都是要先merge,再提交.
这里要先讲一下分支的操作:
//查看分支列表.(-l (local)本地 -a (all)全部 -r(remote) 远端仓库 )
git branch -l
//分支名如果存在切换到该分支,不存在则新建.(新建的规则是从当前所在分支复制一分相同的代码.)
git brach 分支名
//切换分支名一般用的这个命令
git checkout 分支名
//以上都做好了,那么就可以在写好代码提交了.

提交代码的步骤:
i .先查看文件的状态:修改过的,是红色的,同时没有添加到索引区.
git status
ii. 然后将要提交的文件加入到索引区


git add 文件名
// 如果全部添加的话
git add .
这里又出现问题了,那么我们如果加错文件了怎么办,当然是有撤销操作的.


//这个是删除命令,有点暴力
git rm --cached 文件名
//温柔一点的,不加文件名就是所有了.
git reset 文件名


iii. 如果前面的没有问题那就是可以提交了,commit,这样会先暂到本地的仓库,此时还没有到远端仓库.具体的命令是:
// 提交记录:
git commit -m "提交信息"
//查看提交记录
git log
注意了:如果一个分支你有很多次提交,比较加了一个"," 添加一行代码,都提交,那么提交记录是不是就很多了.

估计你领导看见不会太开心,哪有这样写代码的.当然有时候要处理别的分支的代码而你又在开发,就暂时的保存一下,但结果就是不好看,领导也不会看过程不是.所以就有一个合并提交记录的操作.









至此我们就完成了记录的合并修改.涉及的命令:
//修改记录:~~表示之前的所有,~2表示前两次
git rebase -i HEAD~~
已经修改了,分为两种情况,
a. 这个分支是新建,远端仓库没有,那么直接fetch一下,更新一下本地分支的代码.
b. 如果这个分支远端仓库有,那么要先pull,拉取和本地的代码比较,有冲突的地方要解决,然后再是merge,develop分支的代码.否则代码push到远端分支会出错,要二次解决冲突.
git fetch
git pull
git merge origin/develop(仓库名/分支名)
//最后推到远端仓库.->提merge request
git push
前面提到一个问题.那就是如果我们临时要切换分支,而我们的代码以没有开发完,不想commit怎么办.git提供了一个暂存的操作.
image.png
image.png
image.png
// 我新添加的没有了,将其放到了缓存中.
image.png
//完成其他分支修改后,取出缓存中的内容
image.png
image.png
// 涉及的命令有:
//查看缓存列表
git stash list
//存储操作
git stash save "存储内容信息"
//取出缓存:pop 取出并删除. apply是取出不删除.
git stash pop stash@{0}
我们提交时都会遇到一个问题,那就是commit的内容没有完整,想修改一下,那要怎么做呢.
image.png
image.png
image.png
git commit --amend
网友评论