准备工作

建好远程仓库,拉取到本地

idea or pycharm中使用git_远程仓库

执行以下命令,这样我们得到了一个空的项目

git clone https://github.com/emmith/gittest.git
cd gittest
git init

idea or pycharm中使用git_github_02

然后用pycharm打开项目

一次简单的提交

总体步骤是 create file -> add file -> commit -> push

首先新建一个文件

新建一个文件后,会提示你是否add

idea or pycharm中使用git_git_03

如果上面没有点击add,可以右键项目->git->add

idea or pycharm中使用git_远程分支_04

add完成以后,文件名称会变成绿色

idea or pycharm中使用git_github_05

commit

点击右上角的勾,勾选本次提交所更新的文件,输入提交相关信息,点击commit提交

idea or pycharm中使用git_远程仓库_06

commit完成以后文件名称变成白色

idea or pycharm中使用git_github_07

push到远程仓库

点击右下角的master(分支名称),出现以下界面

idea or pycharm中使用git_git_08

点击local branches下的分支名称,再点击push,确认push即可更新到远程仓库,一般我们不会直接提交到master,我们先新建一个dev分支
点击上图中的new branch

idea or pycharm中使用git_文件名_09

然后点击右下角分支名称,点击local branes下的分支名称,点击push,出现以下界面

idea or pycharm中使用git_文件名_10

点击push,查看远程仓库如下所示

idea or pycharm中使用git_github_11

点击右下角的分支名称后可以看到,多了一项Remote branches

idea or pycharm中使用git_远程仓库_12

先同步远程仓库再push

在实际使用中,我们一般是多人协作,可能提交之前,远程仓库已经更新了,为了避免不必要的麻烦,我们要先同步再push

在github页面上,在线编辑readme文件,并新增一个test文件,模拟其他人的提交

idea or pycharm中使用git_文件名_13

在本地修改readme文件,并新建一个提交
点击左下角的git,点击loca下的dev分支,可以看到本地的提交记录

idea or pycharm中使用git_远程仓库_14

双击右边的你已经修改过的文件名称,可以看到文件相对上一次提交的对比,这里我增加了一行local update

idea or pycharm中使用git_远程分支_15

点击remote的dev分支,因为没有同步,所以显示依然只有一条

idea or pycharm中使用git_远程分支_16

点击右上角的蓝色箭头,出现下图

idea or pycharm中使用git_git_17

选择第一个点击ok,然后出现以下界面

idea or pycharm中使用git_git_18

因为我们在本地修改了readme文件,并commit到了本地分支,而远程仓库的readme文件也进行了修改,这个时候就有了冲突,右边有三个选项,选择accept yours则保存本地修改,文件不变,accept theirs则保存为远程仓库的修改,本地的修改被覆盖,这里我们选择merge,出现下图

idea or pycharm中使用git_github_19

可以直观的看到对比,accept left为保存本地的修改,accept right为保存远程的修改,中间的为你手动merge后的结果,这里我保存为如下

idea or pycharm中使用git_远程仓库_20

查看本地分支,发现已经把远程分支的记录同步到了本地

idea or pycharm中使用git_github_21

查看远程分支,对比本地分支发现少了一条记录,因为我们还没有push

idea or pycharm中使用git_github_22

push完成以后,再次查看远程分支,发现和本地分支同步了

idea or pycharm中使用git_git_23

merge remote tracking...因为我们将readme文件中远程的修改和本地修改进行了merge,我们可以点进去查看

idea or pycharm中使用git_github_24

取消commit

取消没有push的commit

右键local 下对应分支的提交,点击undo commit即可,如果要取消多个,从上到下取消,不要从中间取消

idea or pycharm中使用git_远程分支_25

取消已经push的commit

右键remote下的对应分支的提交,点击revert commit,然后commit,会自动给你加上revert ...的提交信息,再push,远程仓库就更新到上一个版本了

idea or pycharm中使用git_远程仓库_26

原理就是反向提交,把上一个版本的文件提交过去,还原为上一个版本