一、前言
GibHub的名字源于Git,Git是一个分布式版本控制系统,让程序员团队能够协作开发项目,Git帮助大家管理为项目所做的工作,避免一个人所做的修改影响其他人所做的修改。你在项目中实现一个新功能的时候,Git将跟踪你对每个文件所做的修改。确定代码可行后,你将提交所做的修改,而Git将记录项目最新的状态,如果你犯了错,想撤销所做的修改,可轻松的返回以前的任何可行状态。GitHub上的项目都存储在仓库中,后者包含与项目相关联的一切:代码,项目参与者的信息,问题和bug报告等。
二、下载
直接到官网下载 .exe 结尾的文件
三、安装过程
参考:http://www.cnblogs.com/wj-1314/p/7993819.html
四、配置
Git跟踪谁修改了项目,哪怕参与项目开发的只有一个人。为此,Git需要知道你的用户名和电子邮件。你必须提供用户名,但可以使用虚构的电子邮件地址(也就是创建一个账户):
git config --global user.name "zhanzhuang"
git config --global user.email "zhuangzhan@hengtiansoft.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
五、创建项目
我们来创建一个要进行版本控制的项目(又称版本库)。在你的系统创建一个文件夹,并将其命名为learngit。
我创建learngit的程序如下:
mkdir learngit #创建文件learngit
cd learngit #进入learngit文件里面
pwd #显示learngit的存在目录
我创建了一个hrllo.world.py程序,如下:
print("hello world")
六、忽略文件
***
七、初始化仓库
我们创建了一个文件,并通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in C:/Users/learngit/.git/
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git
的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。要是删除这个东西,则丢弃项目的所有记录。
如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
也不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。不过,不建议你使用自己正在开发的公司项目来学习Git,否则造成的一切后果概不负责。
八、检查状态
$ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) hello_world.py nothing added to commit but untracked files present (use "git add" to track)
在Git中,分支是项目的一个版本,从这里的输出我们可以知道,我么位于分支的,master
我们每次查看项目的状态时候,输出的都是我们位于分支master上,接下里的输出表明,我们将进行初始项目的日叫,提交是项目在特定时间的快照。
Git指出了项目中未被跟踪的文件,因为我们还没有告诉他要跟踪那些文件,接下里我们被告知没有任何东西添加到当前提交里面,但我们可能需要将为跟踪的文件加入仓库
九:将文件加入到仓库
git add * (将所有文件加入到仓库)
十:执行提交
$ git commit -m "Started project"
[master (root-commit) 5d6ceca] Started project
1 file changed, 1 insertion(+)
create mode 100644 hello_world.py
我们在执行 git commit -m "Started project" 的时候以拍摄项目的快照。标志-m 让Git接下里的消息(“Started project")记录到项目中的历史记录中,输出表明我们在分支master 上,而且有一个文件被修改了
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
十一、查看提交历史
$ git log commit 5d6cecad80427924b94b14c6fd2bb82a4fa86840 (HEAD -> master) Author: username <xxxxxxxxxx.example.com> Date: Sat Dec 9 20:16:17 2017 +0800 Started project
我们每次提交的时候,Git都会生成一个包含40字符的独一无二的引用ID,它记录提交是谁执行的,提交的时间以及提交的指定消息,并非在任何情况下你都需要所有的这些信息,因此Git提供一个选项,让我们能够打印提交历史条目的更简单的版本。
$ git log --pretty=oneline
5d6cecad80427924b94b14c6fd2bb82a4fa86840 (HEAD -> master) Started projectvvvv
标志 --pretty=oneline 指定显示一项最重要的信息,提交的引用ID以及为提交记录的消息。
十二、第二次提交
为了显示版本控制的强大,我们需要对项目进行修改,并提交所做的修改。为此,我们在文件hello.world.py中再添加一行代码。
print("hello world")
print("hello git")
如果我们查看项目的状态,将发现Git注意到这个文件的变化
$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: hello_world.py no changes added to commit (use "git add" and/or "git commit -a")
这个之处了我们当前所在的分支为master,其中做出修改的文件是hello_world.py,而且指出所做的修改还没有提交。
接下来我们提交所做操作,并在查看操作。
这一步,我们执行了提交,并且在执行命令git commit 的时候指定了标志-am.标志-a 让Git 将仓库中所有修改了的文件都加入当前提交中,(如果我们两次提交之间加入了新文件,我们执行get add . 操作,将新文件加入到仓库中)标志-m让Git咱提交历史中记录一条消息。
$ git commit -am "Extrended greeting."
[master b4ee15d] Extrended greeting.
1 file changed, 2 insertions(+), 1 deletion(-)
$ git status On branch master nothing to commit, working tree clean
$ git log --pretty=oneline b4ee15ddf5274f488db8c74c327065c6f331ec5e (HEAD -> master) Extrended greeting. 5d6cecad80427924b94b14c6fd2bb82a4fa86840 Started project
我们在查看项目的状态的时候,发现工作目录也是干净的,最后我们发现提交历史中包含两个提交。