1.点击New按钮创建项目

2.填写项目名称Repository name(必填)、项目描述Description(选填)、选择Private(私有项目)(这样项目外的成员就看不到了,一个项目最多可以有3人协作,如果想要更多人需要付费)、ReadMe相当于项目介绍(选填);

3.创建项目后通过SSH方式克隆,千万不要通过HTTPS,因为后面可以通过SSH keys进行权限管理;
克隆方式:打开PowerShell或CMD控制台,git clone SSH后面的内容,复制即可

4.这时候跳出需要填写密码,这是因为我事先添加过SSH key了;

5.填写SSH keys方式,找到头像,点击Settings按钮,选择SSH and GPG keys,添加New SSH key;

6.Key是必填的,Title选填;
创建一个SSH key
1.打开控制台: cd ~/.ssh
2.创建共钥: ssh-keygen -t rsa -C "your_email@youremail.com"
3.查看公钥: cd ~/.ssh/id_rsa.pub
4.复制公钥内的一串字符串,粘贴到Key文本框中

创建公钥的时候需要填写信息,密码是选填的,如果你不想每次都填密码可以空着,如果填了密码就需要每次都填写,并且密码在控制台填写的时候是看不见的,填写完回车即可;
第一次操作密码填错了,报错;第二次就克隆下来了;
7.上传步骤
1.git add .(注意别遗漏点)
2.git commit -m "修改的内容",相当于SVN中的提交注释
3.git push origin (branchname),将本地cimmit上传到分支
4.通常在项目创建时有一个默认分支master,但是如果有多人协作,那么需要创建分支,把自己写好的先放在分支上,这些放在分支上的内容可能是对项目bug修改或者添加新功能,目的是为了预防对项目主体造成隐患;当检查测试没有问题后,再把分支内容合并到master上;
5.git branch,列出分支
git branch (branchname),创建一个新的分支
git branch -d (branchname),删除一个分支
git checkout (branchname),切换到一个分支
git checkout -b (branchname),创建并切换到新的分支

然后创建一个新的分支dev,切换到新的分支中

创建一个dev.docx文档,当做新添加的功能吧,然后上传到远程dev分支上

此时查看master分支,只有test.docx文档,但是出现了两个分支

切换到dev分支试试,dev分支上有刚刚创建的dev.docx文档,说明提交成功了

接下来把dev上面的内容合并到master分支上,先切换到master分支上,然后执行git merge dev命令

接着重复之前的上传步奏即可,注意一下红框内的提示,说明不需要之前的add,commit,直接push即可,所以直接执行git push命令就行了

下图是我新添加了dev01.docx文档到dev分支上,然后合并到master分支上的全部步骤

注意提交的注释,dev.docx的注释和dev01.docx的注释都是在dev分支操作时commit的注释

提交讲完了,接下来说一下如何拉取线上项目
比如我想拉取项目dev分支下的,那么可以这么做
1.新建一个空文件,文件名与线上项目名相同
2.初始化,创建.git文件
git init
3.本地origin master分支与远程仓库建立连接
git remote add origin git@github.com:XXXX/nothing2.git
4.把远程分支拉到本地
git fetch origin dev(dev为远程仓库的分支名)
5.在本地创建分支dev并切换到该分支
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
6.把分支上的内容都拉取到本地
git pull origin dev(远程分支名称)
下图展示全部操作流程

然后再试着上传一遍新文件到远程dev分支

可以看到dev02.docx文档出现在dev分支中,说明提交成功了;以上演示了双人协同工作在一个dev分支上的操作流程

接着做个扩展:
如果我们在master分支上如果修改了内容,但是dev分支上该内容没有及时更新,但是现在要合并到master分支上,怎么办呢?
我先修改了master分支下的test.docx文档,相当于修改了代码

然后修改一下dev分支的内容,提交到dev分支上(这里注释写错了,应该是dev.docx)

准备合并到master分支上

这时候再查看master分支上的dev.docx文件,打开文档可以看到dev.docx文档修改了,并且test.docx并没有因为dev分支没有及时更新覆盖掉,因为之前在master分支上更新过,所以test.docx文档页修改了

然后如果想把dev分支更新到master同步,怎么做,很简单
先切换到dev分支,然后拉取,更新

其他Git命令
git revert // 撤销某次操作,并且把这次撤销作为一次最新的提交,版本会递增
git revert HEAD // 撤销前一次提交 git revert HEAD^ // 撤销倒数第二次提交
git revert HEAD~2 // 撤销倒数第三次提交
git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff) // 撤销指定的版本,撤销也会作为一次提交进行保存
git diff temp // 比较master分支和temp分支的区别