一直在用TortoiseGit工具在进行git的日常操作,今天准备把Git完完整整走一边,有一个大致的了解。

首先说一下Git和GitHub的区别。Git是存放代码文档什么的仓库, GitHub 则是在网络上提供 Git 仓库的一项服务。 GitHub是我们看到的前端实现,后边由Git进行管 理。 把这两个分开,要不后边难免有费迷胡。

然后我们首先要在www.github.com 上创建一个自己的账号,创建完成后注册用的邮箱会收到一封Verification code 的邮件。这一步是很简单的。

然后给自己创建一个新库,
GIT常用基本操作,从建库到分支_第1张图片
比如,下边的小红框里我填的是designModel, 这样一个空的库就建好了
GIT常用基本操作,从建库到分支_第2张图片
从下边开始就都可以直在本地的git上进行操作了

然后下边要首先开始安装Git,我安装的是Git-2.25.1-64-bit ,这个一路默认安装即可。

安装完成后,在GIT安装的BIN目录下执行.ssh目录的创建和公钥/私钥的生成
用CMD窗口跳到GIT的BIN目录下,执行sh.exe
GIT常用基本操作,从建库到分支_第3张图片
执行创建目录操作 mkdir ~/.ssh (这里要注意的是这里已经是bash的风格了,不要用windows下的窗口命令)
GIT常用基本操作,从建库到分支
完成后会在C盘的用户目录下生成一个.ssh目录

创建公钥/私钥 执行 ssh-keygen -t rsa -C "账号@邮箱" 命令(此处的账号就是注册github用户时的邮箱),下图黑框处标的账号(连@包括后边的邮箱一并录入)

注意前边的 ssh-keygen 是连在一起的,不要给断开

执行完成后会在本地的.ssh目录下生成两个对应的文件id_rsa和id_rsa.pub。
然后把id_rsa.pub(公钥文件里)里的内容粘贴出来。在GitHub的设置菜单下的ssh配置区将相应的公钥信息贴入
GIT常用基本操作,从建库到分支_第4张图片
保存成功后,正常你的邮箱会再收到一封邮件,写着如下信息
If you believe this key was added in error, you can remove the key and disable
access at the following location:

那就是可以了

完成之后就可以和github正常连接了。

然后首先要干的要把我们在github创建的那个空的库先get到本地,这里要选好你要放库的位置,比如我想要把库放在d盘的workspace-git目录下,那么就在这个目录下去运行GitBash,
GIT常用基本操作,从建库到分支_第5张图片
这样进入bash运行的窗口后,它所操作的目录都是基于当前目录的,然后就可以执行git clone 的命令了
git clone https://github.com/mas199980/DesignModel.git 后边跟的是我自己的库的连接,
这个连接到github的页面上去找,也可以用git remote -v命令查找
GIT常用基本操作,从建库到分支

执行成功后就在本地生成了一个相关目录,后续在上传下载代码的操作都是在这个目录下执行了

clone成功后本地就有了一个包含.git文件的,与库名相同的一个文件夹。然后我这个文件中用eclipse创建了一个初始的maven工程,然后我需要把刚刚创建完的文件推到库里,我需要的步骤有如下3个

1,执行 git add 命令将相应的文件加入到缓存区,如果写 . 就是当前目录下的全部文件
GIT常用基本操作,从建库到分支_第6张图片
2,完成以后再将文件提交到本地管理,执行git commit , 这个commiit我带了个参数,做了一个备注 - m (因为前边的操作没有截屏,这里后补一个,所以备注是增加readme.md文件)
GIT常用基本操作,从建库到分支

3,最后,我们将本地的提交推到git上,执行git push
GIT常用基本操作,从建库到分支_第7张图片

当提示本次push success的消后,到github网站上就可以看到自己提交到的代码了。

这样一个最基本的正向流程就完成了。我们可以通过git status命令经常查看一下本地是不是有没有提交的操作,将没有完成的提交了就可以了。

下边是git另一个很常的操作,就是打分支。团队开发已上线的系统时经常遇到Bug与需求齐飞的情况。Bug是必然要马上打到发布分支上去的,但是需求却可能只开发到一半。这样就需要至少有两个分支,一个用于继续做需求,另一个分支去打补丁进行发布,然后在下一轮发布之前,所有的补丁要同时也合并到开发的这个主分支上。

在git下通过git branch命令就可以看到当前git下都有哪些分支,在我这里现在显示的是有两个分支,一个是master,一个是刚刚用来做分支测试的feature-A 分支,而我当前是在默认操作master分支(这点一定要注意,现场版本混乱往往就是开发人员在提交代码版本的时候提错了分支,导致各种悲剧-_-)
GIT常用基本操作,从建库到分支_第8张图片

下边来创建新的分支,git checkout -b feature-A ,这是刚刚看到的 feature-A分支创建的命令,执行成功后新的分分支就被创建起来了。同时当前工作的分支也会被默认切换到新分支上(再切回到原分支的命令是 git checkout master)
GIT常用基本操作,从建库到分支

切换完成后就可以在这个分支上进行操作了,如同在主分支上一样提交操作包括 add,commit和push (push的时候要注意一下把分支名称打上 git push origin feature-A)。 完成后同样可以github上看到相应的修改

那么在feature-A上的修改最终要合并到master上,这个就要进行如下的操作
先切回到主分支上(就是要被合并到的分支上),然后执行合并命令
git merge --no-ff feature-A
GIT常用基本操作,从建库到分支_第9张图片

这样就feature-A上的修改一并合并到主分支上了。但是这个时候在github上是看不到变化的,还需要再进行一次git push操作才可以。

最后执行一下git status命令就可以看到最近的这次合并的情况,红线就是master分支,绿线就是新打出的feature-A分支
GIT常用基本操作,从建库到分支_第10张图片

这样,最基本的git操作命令就完成了。一般使用的同学们就可以基本进行日常操作了。

如果碰到版本冲突情况不能简单覆盖代码解决问题,这是开发的大忌。一定要详细核查代码冲突的部分,然后再进行处理。用以上的套路可以解决,也可以再查一下合并解决的命令,以及版本撤销的命令