关于Git学习的一些命令(二)

跟的上面的走;

在A下模拟A程序员写的代码

touch main.java

vim main.java

在main.java中写数据用来模拟A的代码

关于Git学习的一些命令(二)

git add main.java 或者 git add .

git commit -m "这是A第一次写代码"

git push

A的事情做完了;切换到B目录下

B下在窗口Git clone 远程仓库的地址

关于Git学习的一些命令(二)

B程序员操作main.java这个文件, 用来模拟多人共同开发

关于Git学习的一些命令(二)

也是git add .

git commit -m "B第一次写代码"

git status

git push

好的. 到这里一切正常; 我开始要制造冲突了

切换到A目录下, 因为A忘记git pull, 从而直接编写main.java继续开发

同样 git add .  或者 git add 文件名

git status --------- 每次commit前 看看status, 这是个好习惯. 能避免很多坑

git  commit -m "这是A第二次提交"

问题来了  git push 不了  报异常了  我们来看看异常

关于Git学习的一些命令(二)

提示的很明显 只要看一个单词就好   [ rejected  ]  --- 冲突

--------------------------------------------------------------------------

好, 现在我们开始解决冲突

先拉下最新的代码 git pull

然后git status 看看文件状态 ,哪个文件起冲突了; 这很重要

关于Git学习的一些命令(二)

好的,我们发现了这个文件;  both modified: main.java  

确立了问题文件就好办了;  进入编辑页面

vim main.java

关于Git学习的一些命令(二)

发现文件是这样的, 解释一下 = 号是区分俩个程序员A.B的代码 

修改代码,把冲突解决一下;

关于Git学习的一些命令(二)

变成这样; 别闹, 我这是演示;

同样 git add . 或者 git add 文件名

git commit -m "解决冲突"

git push  ----  现在push  就没任何问题啦

关于Git学习的一些命令(二)



最后我们看看日志 git log

关于Git学习的一些命令(二)


很好, 完成; 毕竟是本地模拟.   所以我现在讲讲从gitHub,码云,coding.net下拉取代码来模拟公司实际开发

实际上和上面二章所说一样;  只是些许不同

关于Git学习的一些命令(二)

关于Git学习的一些命令(二)

创建项目 ---  这一步是项目经理做的;  注意上图的忽略文件; 他有了,我们就不用再写忽略文件了;

关于Git学习的一些命令(二)

拷贝那个URL;  如果配有公钥的点SSH.这样不用输密码;  怎么配公钥我下一章讲解

创建一个目录.用来作为此项目的根目录

git clone [email protected]:a819047638/shuaige.git     这个网址就是上面的网址

然后剩下的步骤基本和上面讲的一样; 我就不写了

现在我只是在上面克隆 ; 那如果我有项目,只是没有在gitHub,coding.net下;那怎么办呢;

我们再次模拟一下

新建一个本地git库

git init

代码阶段, 忽略,和上面一样

git remote add origin xxxx   这xxxx指的是你的URL,就是你在创建gitHub.coding.net项目下的URL ;

例如 上面的[email protected]:a819047638/shuaige.git   这里我讲下, git remote add origin 这个命令是指将本地库和远程库合并

如果是第一次push的话  git push -u origin master

为什么要这么做呢?

   因为git pull,实际上是把当前分支master推送到远程; 但是远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

以后提交 就只要git push origin master 就好了;

好了,现在模拟git完成; 下次写写分支,

最后, 我来说说我自己的感悟吧;

   因为现在开发工具越来越智能化; 也越来越能节约程序员的时间; 像我以前都是直接工具上下载插件,然后无脑操作; 虽然也能达到目的,但是却涉及不到东西的根本; 不清楚数据怎么来的,不知道为什么要这么做;这实际上是种误区; 所以我想说,

      不要因为简单, 就忽略了本质; 不要因为困难, 就畏惧不前;  不忘初心,方得始终; 每一步,都是成长的脚印;


如果我写的哪里有问题, 欢迎大家来指正;  谢谢了