- 下载安装Git
1. 从Git官网进行下载
打开网址:https://git-scm.com/download/win
选择32或者64位的对应版本进行安装
2. 安装Git插件
就安装默认的设置一路Next,以下都是默认设置,不需做任何改动

安装完毕后,进入cmd命令,输入git –version进行验证

出现了版本信息后,则说明git已经成功在您的电脑上安装成功了,同时右键桌面会出现Git GUI和Bash的菜单

- 在Github上创建仓库(Repository)
1. 进入Github网站
打开网站:https://github.com/
2. 登录或注册Github
注册过程不多介绍,没有Github账号的可以在https://github.com/join?source=header-home
上进行注册
已有账号,登录后,出现主页界面如下:
3. 创建仓库
先在首页右上角头像点击,再点击弹出下拉列表框的”Your profile”
进入了个人首页后,点击”Repositories”标签,再点击绿色的”New”按钮,如下:

此时进入了创建仓库页面,在”Repository Name”的输入框内输入你想命名的仓库名,我这边暂时命名为”MyTest”, 确定了仓库的名字后,则可以点击下方绿色的”Create Repository”按钮,以完成创建。
图片中的”Public”为公共仓库,所有来访者都可以查看您写的代码,是免费的。
”Pravite”为私有仓库,只有您自己可以查看代码,需要收费

看到下列界面,则说明你已经成功的创建了第一个仓库,接下去我们会在自己电脑本地,对该仓库进行些操作

- 对仓库(Repository)进行操作
1. 克隆仓库到本地
打开刚刚创建第一个仓库的界面,复制仓库的URL地址,下图红框可直接复制,如下图所示:
在本地电脑利用git clone的命令,去下载该仓库。在cmd命令行中输入git clone “https://github.com/John0731/MyTest.git” 如下图所示。
2. 提交第一个代码文件
a) 把Python脚本文件放入该仓库文件夹内,打开命令提示符,输入git status,查看当前仓库变更状态

b) 如上图所示,看到这个Python脚本文件是未暂存的状态,那么现在需要通过命令git add FileOperation.py 去将这单个文件加入暂存队列,在用git status命令查看如下:
c) 现在该文件被加入了暂存队列,显示为绿色,接下来我们将它上传到我们的仓库里
首先,利用git commit –m “内容” 命令填写注释,以表示上传这个文件的目的是什么。
在命令行中输入git commit –m “Upload my first file to project” 以表示这是上传的第一个文件,中英文即可,但尽可能还是用英语表达
随后用git push命令,需要输入Github的用户名和密码,随后提交到服务器,如下图所示:

d) 回到Github网页上查看文件是否被提交成功
如下图所示,Python文件已经成功的被提交到仓库中了
3. 更改第一个代码文件
进行仓库所在的文件夹,利用命令git pull来检查当前仓库是不是最新的

出现”Already up-to-date”则说明当前仓库的代码都是最新的,不需要同步
再利用命令git status检查当前仓库内是否有文件被更改
出现”nothing tocommit”的信息,则说明该仓库内暂时没有文件被更改
现在将刚刚提交的Python脚本文件进行更改,具体过程不详述了,更改完后,再输入git status,会发现如下所示的变更信息:

此时出现了该文件被修改的信息,带有”modified”的标签
随后提交: git add FileOperation.py , git commit -m "Update my file" ,git push
如下图所示:

到Github上查看变更情况:
点击该文件,查看差异:

4. 重命名第一个代码文件
将Python脚本文件从” FileOperation.py”重命名为” Test.py”,注意一定要带扩展名!
利用命令: git mv -f 原文件名新文件名
改变此文件用命令:git mv -fFileOperation.py Test.py

此时在本地,文件名被改为了”Test.py”
利用git status 查看文件变更状态:

该文件显示被重命名,被标记为”renamed”标签
提交该文件用以下命令: git add Test.py , git commit -m "Rename filefrom FileOperation.py to Test.py", git push 如下图:
Github上查看变更情况:
5. 删除第一个代码文件
直接在仓库内删除该文件,再输入git status命令查看文件变更状态:

此时显示文件被删除,并被标记为”deleted”,随后提交该更改
提交命令: git commit -a -m "Delete file Test.py" ,git push

Github上查看变更情况:

此时该仓库又重新变为了空仓库
6. 将指定文件或者文件夹不上传到Github
现在本地仓库内添加若干个txt文件和一个Test文件夹,并用git status命令查看仓库文件变更情况:
此时显示在该仓库内有若干个txt文件和Test文件夹等待被提交
注意:文件夹为空是不会被显示
但这个时候不想提交txt文件和该文件夹并永久生效,则需要添加一个名为”.gitignore”的文件,并输入下列信息:
*.txt 所有txt文件
/Test/ Test文件夹
再利用git status命令查看文件更改状态,如下图:

此时所有的txt文件和Test文件夹不被列为暂存队列,只留下.gitignore文件,需要被提交,只要提交了该文件,则会生效。
生效范围仅为单个文件夹内,不是所有仓库内都生效
7. 同步代码
在另一台机器上,我新创建了一个更改提交,在空仓库内提交了一个Python文件,在Github上如下图显示,那么在同步代码的时候,也会遇到两种情况
a) 不先同步代码的情况下,尝试提交更改
通过上述命令,准备提交一个新文件进入仓库,但在最终提交的时候报错,最大的原因就是因为没有同步代码,造成提交失败的错误
b) 先同步代码,后续在做更改提交
把上述Hello.py的文件给删除,先进行同步代码,利用命令git pull进行操作

此时我们看到,文件已经从仓库同步下来,之后再尝试刚刚想要添加的Hello.py,就能够被成功提交的仓库中了

进入Github再查看,同步代码过后,再次提交其他文件,确实是被提交到仓库了

所以记得在每次要提交代码前,一定记得要用命令git pull去同步代码!
8. 批量增加代码文件
现在在MyTest所在的仓库文件夹内,复制多个Python文件,用git status命令进行查看文件变更状态

为了不一个个添加省去时间,可以用命令git add . 或者git add –A 进行批量的提交,如下显示
此时批量文件被添加的暂存队列,该方法同样适用于批量被修改和删除的情况,随后提交这些批量文件到Github

进Github查看这些批量添加的情况

现在看到这些Python文件被批量的添加到了Github仓库中了
9. 创建本地分支
进入仓库,在命令提示符中输入命令git branchdev,以创建本地分支dev
输入命令,git checkout dev,切换到本地分支dev
输入命令,git branch ,查看当前仓库下有多少分支,带*号的为当前所处的分支
现在在dev分支上,创建一个txt文件名为Test.txt,内容为”Createfile on dev branch”,随后提交

10. 合并本地分支
基于上一节内容,输入命令git checkout master切换回主分支master
输入命令,git branch ,查看当前仓库下有多少分支,带*号的为当前所处的分支,目前为主分支
输入命令,git merge dev,将dev分支上的内容合并到当前分支(主分支)
随后将其内容上传到仓库

在Github上查看刚刚提交的内容,注释内容为之前在本地分支注明的内容:

11. 删除本地分支
在上一节合并完了本地分支的内容后,那么现在进行删除分支的操作
先通过命令git branch ,查看当前仓库下有多少分支,带*号的为当前所处的分支,当前为主分支

利用命令git branch –d dev ,去删除本地分支dev,删除后显示成功的信息

12. 冲突解决
在上述第9节的仓库中,利用git checkout –btest , 直接创建并进入本地分支test,将之前已经创建的txt文件Test.txt的内容进行更改,将内容改为”Editfile on local branch”,随后在test分支上进行提交

随后利用命令git checkout master,切换回主分支master
先通过命令git branch ,查看当前仓库下有多少分支,当前回到了主分支

此时主分支上的Test.txt的内容还是为之前的”Create file ondev branch”
现在在主分支上将txt文件Test.txt的内容进行更改,将内容改为”Editfile on master branch”,随后在master分支上进行提交

输入命令,git merge test,将test分支上的内容合并到当前分支(主分支),随后出现冲突报错

找到该文件打开,查看出错内容
HEAD的内容为在主分支上更改未上传的”Edit file onmaster branch”
Test的内容为在本地test分支上更改未上传的”Edit file on localbranch”

因为在本地分支上先进行更改的,所以这里需要手动处理,将Test.txt的内容删除Head的内容,只保留test分支上的内容,如下:

随后上传提交此次操作:

在Github上查看此处提交操作内容:
此处操作经过了:本地分支更改、主分支更改、最后在主分支上通过手动解决冲突,回滚到本地分支更改的内容,最终解决了冲突。

13. 版本回退
版本回退是一个比较重要的功能,可以恢复到文件的之前的特地版本中
接下来在仓库里,新建一个txt文件,分别做三个版本的提交
提交文件内容分别为:
第一次 --- This is the 1st version of file
第二次 --- This is the 2nd version of file
第三次 --- This is the 3rd version of file
利用命令git log查看最近到最远的提交日志,而可以看到下图中显示的最近三个提交,而这三次提交正好是我对文件修改的三次操作产生的三个版本
按q键退出编辑模式

为了简化输出信息,可以利用命令:git log--pretty=oneline 进行查看,会出现列表提交信息显示,下图中的前三条则是之前提交的三次操作。左侧黄色的数字和字母组成的序列,则为commit id,按q键退出编辑模式
现在由第三个版本回退到第二个版本:
输入命令:git reset --hard HEAD^ ,再后来弹出来的More?中再次输入^ ,这样文件就回退到了第二个版本,如下图显示

HEAD表示当前最新版本,^表示之前上一个版本,^^表示之前再上一个版本,如果是之前100个版本,则可以输入HEAD~100
根据命令git log --pretty=oneline显示的提交列表,找到第一个版本的commit id为5639bb4,只要取前7位即可,git会自动根据id号退回

现在找到了commit id为5639bb4,现在利用命令: git reset --hard 5639bb4 成功回退到第一个版本,如下图显示

现在txt文件版本已经回退到了最初版本,那么现在又想前进到最新的第三版本,该怎么做?
先输入命令:git reflog ,该命令用来记录你的每一次命令,排序是从最近到最远

如上图所示,黄色框的两个commit id是刚刚做了两次回退操作后生成的,而蓝色框则是最后一次提交的第三版本,也是txt最新版本,是需要的,记录其commit id号62a7c73.
现在利用命令: git reset --hard 62a7c73 成功前往到了最新版本,如下图显示

14. 在Github上查看仓库的有用信息
a) 查看提交数量
点击”commits”标签

上图列表中显示所有提交的记录,随便选择一条记录点击查看

b) 查看分支数量

默认的是master主分支,可以创建本地分支进行同步开发和合并

c) 发布产品

在release标签下,可以通过”Create a new release”去发布产品

d) 查看贡献的信息

在下图可以看到有多少人在此仓库中进行了提交的统计信息

e) 提交Bug和其他问题反馈
找到”Issues”标签卡,点击”New issue”按钮

在下图显示的表格内填写问题描述,最后点击”Submit new issues”进行问题反馈

f) 邀请其他人一起开发仓库
点击”Settings”标签卡,选择左侧”Collaborators”,在下方文本输入框内,输入其他人的github的id,随后点击”Add collaborator”按钮,在邀请人员经过邮件链接点击同意后,即可进行共同开发

15. 设置全局变量的账号和邮箱
在命令提示行内分别输入$
git config --global user.name"您的Github用户名"
git config --global user.email"您的Github邮箱"
16. 重命名仓库
点击”Settings”标签卡,选择左侧”Options”,在右侧文本输入框内,输入新的仓库名,最后点击”Rename”按钮
回到个人首页,仓库名已经被重命名为”NewTest”

17. 删除仓库
点击”Settings”标签卡,选择左侧”Options”

一直拖到底,发现”Danger Zone”并点击”Delete this repository”

需要输入仓库名以确认

出现下列信息,则表示仓库删除成功

其他的操作会持续更新中…..