1:新建远端项目(以码云为例),得到初始化项目和地址

2:克隆到本地

进入本地查看是否成功拉取了文件,这里可以根据git status查看当前所在分支

3:复制本地的项目到该路径,并提交到master.以android项目为例

4:提交本地项目到master
直接提交会提示untracked files:xxx文件,所以这里提交文件之前应该先add file.
add file 文件名,然后可以看到


现在我们来提交到服务器:
git commit -m "描述信息"


到这里后服务器还没有更新到文件,需要最后push推送过去,所以在commit后一定要记得push操作。
提交时候git push 报错如下:

从新从资源管理器中输入用户名和密码,再次push就会弹出界面,然后输入正确的用户名和密码即可:

提交成功后查看服务器是否提交成功:

这个显示的时间是本地commit的时间并不是push的时间。
5:更新代码,这里可以手动进入查看页面后在服务端添加代码,然后我们是更新代码。

本地修改文件后提交,如图:

这里查看时候发现本地和服务端不一致:



可以通过git status查看本地和服务端的差异,发现test.class被删除了。这里我们要么执行还原,更新到这个文件,要么删除这个文件。首先试试还原代码:
1:git log查看需要还原到哪个版本
2:git reset --hard 版本前几位
然后我们在试试删除服务器端的test.class:

==============================================================================================================================================
上诉说明了基本的语法,下面来创建管理分支。首先先明白git分支的好处,新特性和BUG修改都在不同的分支上进行开发和测试。这样规范了整个软件的开发流程。分支之间的互不影响这种特性可以增加团队合作的效率。GIT分支的另外一个重要特性就是可以合并不同软件仓库(fork)的分支。大体就是:开发团队有一个主软件仓库,开发者可以fork这个仓库,相当于克隆了一个私有的软件仓库,然后开发者就可以在自己的软件仓库中建立分支并开发测试,测试完毕之后,可以向主软件仓库提交merge request,这样新开发的特性就会被合并到主软件仓库的某个分支中。
1:创建分支

2:在dev上创建文件并提交,查看master区别


这里如果是添加或者修改了多个文件,不需要每次手动去把每个添加进来,可以直接添加文件夹,git add 文件夹,现在切换到master查看文件是否存在:

可以看到master中没有这个test文件。
3:合并分支到master

这个合并操作需要切换回master。
这里合并成功后,本地有了dev_test,但是服务端没有:

所以这里还需要git push 到服务器上。

这里每次需要commit时候先pull更新带最新的代码。
下面附上git常用语法:
git config:配置相关信息
git clone:复制仓库
git init:初始化仓库
git add:添加更新内容到索引中
git diff:比较内容
git status:获取当前项目状况
git commit:提交
git branch:分支相关
git checkout:切换分支
git merge:合并分支
git reset:恢复版本
git log:查看日志
===============================================================
这里衍生一个遇到过的问题,如图:

结论:如果master主动删除了c文件,然后分支依然有c文件,并且新增了一个d文件,这个时候我们在master合并new分支代码时候,可以看到c文件是被移除的。
在合并时候会弹出这样的框:

1:可以输入i,然后在黄色字体里面写入合并信息
2:可以直接按Esc,然后输入 :wq 即可
记得合并后再push一下,以防万一!
如果分支new里面想跟master保持一致,也可以merge master.
==================================================================
我们再来看另一个问题:

这个时候,如果master合并到的文件会是怎样的呢?验证如下:

删除master上这个文件:

在分支上修改这个类,然后提交.


接着切换回master合并:


更新到了,这里如果

是想保留这个文件,就可以git add ,然后提交,如果不需要这个文件可以删除.
如果是master和分支同时对一个类进行了修改,在master合并时候会出现:

这个可以看到是这两次差异导致的冲突:

进入编辑器收到增删,然后在文件右键标记为解决.后台提交代码.
网友评论