建好远程仓库,拉取到本地
执行以下命令,这样我们得到了一个空的项目
git clone https://github.com/emmith/gittest.git
cd gittest
git init
一次简单的提交然后用pycharm打开项目
总体步骤是 create file -> add file -> commit -> push
首先新建一个文件
新建一个文件后,会提示你是否add
如果上面没有点击add,可以右键项目->git->add
add完成以后,文件名称会变成绿色
commit
点击右上角的勾,勾选本次提交所更新的文件,输入提交相关信息,点击commit提交
commit完成以后文件名称变成白色
push到远程仓库
点击右下角的master(分支名称),出现以下界面
点击local branches下的分支名称,再点击push,确认push即可更新到远程仓库,一般我们不会直接提交到master,我们先新建一个dev分支
点击上图中的new branch
然后点击右下角分支名称,点击local branes下的分支名称,点击push,出现以下界面
点击push,查看远程仓库如下所示
点击右下角的分支名称后可以看到,多了一项Remote branches
在实际使用中,我们一般是多人协作,可能提交之前,远程仓库已经更新了,为了避免不必要的麻烦,我们要先同步再push
在github页面上,在线编辑readme文件,并新增一个test文件,模拟其他人的提交
在本地修改readme文件,并新建一个提交
点击左下角的git,点击loca下的dev分支,可以看到本地的提交记录
双击右边的你已经修改过的文件名称,可以看到文件相对上一次提交的对比,这里我增加了一行local update
点击remote的dev分支,因为没有同步,所以显示依然只有一条
点击右上角的蓝色箭头,出现下图
选择第一个点击ok,然后出现以下界面
因为我们在本地修改了readme文件,并commit到了本地分支,而远程仓库的readme文件也进行了修改,这个时候就有了冲突,右边有三个选项,选择accept yours则保存本地修改,文件不变,accept theirs则保存为远程仓库的修改,本地的修改被覆盖,这里我们选择merge,出现下图
可以直观的看到对比,accept left为保存本地的修改,accept right为保存远程的修改,中间的为你手动merge后的结果,这里我保存为如下
查看本地分支,发现已经把远程分支的记录同步到了本地
查看远程分支,对比本地分支发现少了一条记录,因为我们还没有push
push完成以后,再次查看远程分支,发现和本地分支同步了
merge remote tracking...因为我们将readme文件中远程的修改和本地修改进行了merge,我们可以点进去查看
取消没有push的commit
右键local 下对应分支的提交,点击undo commit即可,如果要取消多个,从上到下取消,不要从中间取消
取消已经push的commit
右键remote下的对应分支的提交,点击revert commit,然后commit,会自动给你加上revert ...的提交信息,再push,远程仓库就更新到上一个版本了
原理就是反向提交,把上一个版本的文件提交过去,还原为上一个版本