一个小时学会Git


目录

  • 一,版本控制概要 工作区 暂存区 本地仓库 远程仓库

    • 2.1、什么是Git
    • 2.2、搭建Git工
    • 1.1、什么是版本控制
    • 1.2、常用术语
    • 1.3、常见的版本控制器
    • 1.4、版本控制分类
      • 1.4.1、本地版本控制
      • 1.4.2、集中版本控制
      • 1.4.3、分布式版本控制
    • 1.5、Git与SVN最主要区别
  • 二、Git安装与配置

    • 2.1、什么是Git
    • 2.2、搭建Git工作环境
      • 2.2.1、下载Git
      • 2.2.2、安装Git
      • 2.2.3、启动Git
      • 2.2.4、Linux与Mac OS安装Git
      • 2.2.5、Bash基本操作命令
    • 2.3、Git配置 - git config
      • 2.3.1、查看配置 - git config -l
      • 2.3.2、Git配置文件分类
      • 2.3.3、设置用户名与邮箱(用户标识,必要)
      • 2.3.4、添加或删除配置项
      • 2.3.5、更多配置项
  • 三、Git理论基础
    • 3.1、工作区域
    • 3.2、工作流程
    • 3.3、图解教程
  • 四、Git操作
    • 4.1、创建工作目录与常用指令
    • 4.2、获得GIT仓库
      • 4.2.1、创建全新仓库
      • 4.2.2、克隆远程仓库
    • 4.3、GIT文件操作
      • 4.3.1、文件4种状态
      • 4.3.2、查看文件状态
      • 4.3.3、添加文件与目录
      • 4.3.4、移除文件与目录(撤销add)
      • 4.3.5、查看文件修改后的差异
      • 4.3.6、签出
      • 4.3.6、忽略文件
      • 4.3.7、提交
      • 4.3.8、日志与历史
      • 4.3.9、查看文件列表
      • 4.3.10、撤销更新
      • 4.3.11、删除文件
      • 4.3.12、文件操作小结
    • 4.4、GIT分支
      • 4.4.1、新建分支与切换分支
      • 4.4.2、查看分支
      • 4.4.3、分支合并
      • 4.4.4、解决冲突
      • 4.4.5、删除分支
    • 4.5、Git GUI 操作
      • 4.5.1、GitHub for Desktop
      • 4.5.2、Source Tree
      • 4.5.3、TortoiseGit
      • 4.5.4、Git集成Gui工具
    • 4.6、IDE集成的Git客户端
      • 4.6.1、Eclipse – Egit
      • 4.6.2、Visual Studio – Git Integration & GitHub Extension
      • 4.6.3、IntelliJ IDEA
    • 4.7、帮助与代码统计
  • 五、远程仓库
    • 5.1、托管平台
      • 5.1.1、GitHub
      • 5.1.2、Gitlab
      • 5.1.3、Bitbucket
      • 5.1.4、开源中国代码托管
      • 5.1.5、(推荐)coding.net
    • 5.2、申请帐号与设置
      • 5.2.1、申请帐号
      • 5.2.2、创建项目
      • 5.2.3、提交源代码到远程仓库
      • 5.2.4、Markdown文件(.md文件)
    • 5.3、远程仓库操作
      • 5.3.1、常用操作指令
      • 5.3.2、git clone 克隆
      • 5.3.3、git remote
      • 5.3.4、git fetch
      • 5.3.5、git pull
      • 5.3.6、git push
    • 5.4、在命令行中同步本地仓库示例
    • 5.5、IDEA中Git的使用
  • 六、作业与评分标准
  • 七、资源与资料下载
  • 八、视频

最近要与部门同事一起做技术分享,我选择了Git,因为Git 是一种在全球范围都广受欢迎的版本控制系统。在开发过程中,为了跟踪代码,文档,项目等信息中的变化,版本控制变得前所未有的重要。

https://git-scm.com/

源码: https://github.com/git/git/

 

2.2、搭建Git工作环境

 

2.2.1、下载Git

打开 git官网,下载git对应操作系统的版本。

选择版本:

这里我选择下载64-bit Git for Windows Setup

https://git-scm.com/download/mac,下载双击.pkg安装

图解教程英文原版

图解教程中文版

四、Git操作

更多规则请点这里

示例:

创建一个.gitignore文件忽视所有的日志文件

查看状态:

从上图中可以看出2个日志文件并没有添加到暂存区,直接被忽视了。

针对各种语言与项目的Git忽视文件: https://github.com/kaedei/gitignore   https://github.com/github/gitignore

通用的java忽视文件:

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

通用的Visual Studio开发项目忽视文件:

 

idea忽视文件:

.idea/
*.iml
out/
gen/
idea-gitignore.jar
resources/templates.list
resources/gitignore/*
build/
build.properties
junit*.properties
IgnoreLexer.java~
.gradle

/verification

4.3.7、提交

通过add只是将文件或目录添加到了index暂存区,使用commit可以实现将暂存区的文件提交到本地仓库。

# 提交暂存区到仓库区
$ git commit -m [message]

# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a

# 提交时显示所有diff信息
$ git commit -v

# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]

# 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...

示例:

提交前的状态

提交:

提交后的状态:

从上图中可以看出暂存区中没有了bar.htm

修订提交

如果我们提交过后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过"git add"添加到暂存区,然后执行以下命令:

#修订提交
git commit --amend

撤销提交(commit)

原理就是放弃工作区和index的改动,同时HEAD指针指向前一个commit对象

#撤销上一次的提交
git reset --hard HEAD~1

 要通过git log查看提交日志,也可直接指定提交编号或序号

示例:

撤销提交
git revert
这条命令会把指定的提交的所有修改回滚,并同时生成一个新的提交。

4.3.8、日志与历史

查看提交日志可以使用git log指令,语法格式如下:

#查看提交日志
git log [] [] [[\--] …?]

示例:

"git log --graph"以图形化的方式显示提交历史的关系,这就可以方便地查看提交历史的分支信息,当然是控制台用字符画出来的图形。

"git log -1"则表示显示1行。

使用history可以查看您在bash下输入过的指令:

几乎所有输入过的都被记录下来的,不愧是做版本控制的。

查看所有分支日志

"git reflog"中会记录这个仓库中所有的分支的所有更新记录,包括已经撤销的更新。

4.3.9、查看文件列表

使用git ls-files指令可以查看指定状态的文件列表,格式如下:

#查看指定状态的文件
git ls-files [-z] [-t] [-v] (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])* (-[c|d|o|i|s|u|k|m])*

示例:

关于分支廖雪峰解释的比较清楚,我们引用一下。

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

git-br-create

你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!

不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

git-br-dev-fd

假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

git-br-ff-merge

所以Git合并分支也很快!就改改指针,工作区内容也不变!

合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

git-br-rm

动画演示:

2)、切换分支,git branch ,如果name为-则为上一个分支

切换为上一个分支

3)、新建一个分支,并切换到该分支,$ git checkout -b [branch]

4)、新建一个分支,指向指定commit使用命令:$ git branch [branch] [commit]

上面创建了dev3分支且指向了master中首次提交的位置,切换到dev3查看日志如下:

master上本来有两个提交记录的,此时的dev3指向的是第1次提交的位置

 5)、新建一个分支,与指定的远程分支建立追踪关系使用命令:$ git branch --track [branch] [remote-branch]

4.4.2、查看分支

1)、列出所有本地分支使用$ git branch

2)、列表所有远程分支使用$ git branch -r

3)、列出所有本地分支和远程分支使用$ git branch -a

 

4.4.3、分支合并

合并指定分支到当前分支使用指令$ git merge [branch]

这里的合并分支就是对分支的指针操作,我们先创建一个分支再合并到主分支:

这里的file11.txt主分支与dev6的内容现在是不同的,因为在dev6中已被修改过,我们可以使用指令查看:

现在我们将dev6合并到主分支中去,从下图中可以看出dev6中有一次提交,而master并没有

合并后在master上查看file11.txt文件内容与dev6上的内容就一样了,合并后dev6中多出的提交在master也拥有了。

 

4.4.4、解决冲突

如果同一个文件在合并分支时都被修改了则会引起冲突,如下所示:

提交前两个分支的状态

在dev6分支中同样修改file11.txt

dev6与master分支中file11.txt文件都被修改且提交了,现在合并分支

提示冲突,现在我们看看file11.txt在master分支中的状态

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<>>>>>dev6 是指dev6上修改的内容

解决的办法是我们可以修改冲突文件后重新提交,请注意当前的状态产master | MERGING:

重新提交后冲突解决:

手动解决完冲突后就可以把此文件添 加到索引(index)中去,用git commit命令来提交,就像平时修改了一个文件 一样。

git log --graph命令可以看到分支合并图。

分支策略

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

 

4.4.5、删除分支

删除本地分支可以使用命令:$ git branch -d [branch-name],-D(大写)强制删除

删除远程分支可以使用如下指令:

$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

-d表示删除分支。分支必须完全合并在其上游分支,或者在HEAD上没有设置上游

-r表示远程的意思remotes,如果-dr则表示删除远程分支

4.5、Git GUI 操作

通过命令行可以深刻的理解Git,Git GUI或IDE插件却可以更加直观操作Git,常用的Git GUI有如下这些:

4.5.1、GitHub for Desktop

全球开发人员交友俱乐部提供的强大工具,功能完善,使用方便。对于使用GitHub的开发人员来说是非常便捷的工具。

GitHub for Desktop不带三方合并工具,你必须自己手动解决冲突才可以。

– 免费
– 同时支持 Windows 和 Mac:对于需要经常在不同的操作系统间切换的开发人员来说非常方便。
– 漂亮的界面:作为每天盯着看的工具,颜值是非常重要的
– 支持Pull Request:直接从客户端提交PR,很方便
– Timeline 支持:直接在时间线上显示每次提交的时间点和大小
– 支持git LFS:存储大文件更加节省空间和高效
– 不支持三方合并:需要借助第三方工具才行

 

4.5.2、Source Tree

SourceTree是老牌的Git GUI管理工具了,也号称是最好用的Git GUI工具。强大,功能丰富,基本操作和高级操作都设计得非常流畅,适合初学者上手,支持Git Flow。

– 免费
– 功能强大:无论你是新手还是重度用户,SourceTree 都会让你觉得很顺手。对于非常重度用户,Source Tree还支持自定义脚本的执行。
– 同时支持 Windows 和 Mac 操作系统
– 同时支持 Git 和 Mercurial 两种 VCS
– 内置GitHub, BitBucket 和 Stash 的支持:直接绑定帐号即可操作远程repo

 

4.5.3、TortoiseGit

小乌龟,SVN的超广泛使用也使得这个超好用的Svn客户端成了几乎每个开发人员的桌面必备软件。小乌龟只提供Windows版本,提供中文版支持的。

– 免费
– 只支持Windows操作系统:与文件管理器的良好集成
– 中文界面
– 与TortoiseSVN一脉相承的操作体验

 

4.5.4、Git集成Gui工具

安装Git时会集成安装Gui工具,在Git菜单下可以找到,特点是:免费、简单、不需要额外安装

 

4.6、IDE集成的Git客户端

对于使用IDE进行开发的程序员来说,可以不离开常用的IDE就直接操作源代码管理系统是最好的选择,以下是我对几个常见的IDE集成的git客户端:

 

4.6.1、Eclipse – Egit

作为Java集成开发环境的代表,Eclipse内置了egit这个插件来提供git的集成支持。实话实说,这个插件的功能非常丰富,无论是普通的clone, commit, pull/push操作;还是复杂一些的git flow都有支持。

 

4.6.2、Visual Studio – Git Integration & GitHub Extension

VS里面的Git支持已经相当的完善。直接克隆github上的repo

 

4.6.3、IntelliJ IDEA

 

4.7、帮助与代码统计

1)、帮助文档

完整的安装了Git后有一个官方帮助,这是最权威的资料,方法如下:

比如我们要查看git commit的使用

执行时会打开对应的git帮助文档,其实就在本地,当然您也可以去官网在线搜索,地址是: https://git-scm.com/docs。

2)、信息查看与统计命令

#统计某人的代码提交量,包括增加,删除:
git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf 
"added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -

#仓库提交者排名前 5(如果看全部,去掉 head 管道即可):
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

#仓库提交者(邮箱)排名前 5:这个统计可能不会太准,因为很多人有不同的邮箱,但会使用相同的名字
git log --pretty=format:%ae | gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }' | sort -u -n -r | head -n 5 

#贡献者统计:
git log --pretty='%aN' | sort -u | wc -l

#提交数统计:
git log --oneline | wc -l 

# 显示有变更的文件
$ git status

# 显示当前分支的版本历史
$ git log

# 显示commit历史,以及每次commit发生变更的文件
$ git log --stat

# 搜索提交历史,根据关键词
$ git log -S [keyword]

# 显示某个commit之后的所有变动,每个commit占据一行
$ git log [tag] HEAD --pretty=format:%s

# 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件
$ git log [tag] HEAD --grep feature

# 显示某个文件的版本历史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]

# 显示指定文件相关的每一次diff
$ git log -p [file]

# 显示过去5次提交
$ git log -5 --pretty --oneline

# 显示所有提交过的用户,按提交次数排序
$ git shortlog -sn

# 显示指定文件是什么人在什么时间修改过
$ git blame [file]

# 显示暂存区和工作区的差异
$ git diff

# 显示暂存区和上一个commit的差异
$ git diff --cached [file]

# 显示工作区与当前分支最新commit之间的差异
$ git diff HEAD

# 显示两次提交之间的差异
$ git diff [first-branch]...[second-branch]

# 显示今天你写了多少行代码
$ git diff --shortstat "@{0 day ago}"

# 显示某次提交的元数据和内容变化
$ git show [commit]

# 显示某次提交发生变化的文件
$ git show --name-only [commit]

# 显示某次提交时,某个文件的内容
$ git show [commit]:[filename]

# 显示当前分支的最近几次提交
$ git reflog

示例:

 

五、远程仓库

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,但开发参与者必须在同一个网络中,且必须有一个项目的原始版本,通常的办法是让一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。完全可以自己搭建一台运行Git的服务器但现在更适合的做法是使用免费的托管平台。

同时相较于传统的代码都是管理到本机或者内网。 一旦本机或者内网机器出问题,代码可能会丢失,使用远端代码仓库将永远存在一个备份。同时也免去了搭建本地代码版本控制服务的繁琐。 云计算时代 Git 以其强大的分支和克隆功能,更加方便了开发者远程协作。

 

5.1、托管平台

Git代码托管平台,首先推荐的是GitHub,好多好的开源项目都来自GitHub,但是GitHub只能新建公开的Git仓库,私有仓库要收费,有时候访问比较卡,如果你做的是一个开源项目,可以首选GitHub。下面推荐几个比较好的Git代码托管平台:

 

5.1.1、GitHub

关于GItHub相信大家都有耳闻,我就不详细介绍了。GitHub地址: https://github.com/,其首页如图:

 

5.1.2、Gitlab

对于有些人,提到GitHub就会自然的想到Gitlab,Gitlab支持无限的公有项目和私有项目。Gitlab地址: https://about.gitlab.com/,其首页截图如图:

 

5.1.3、Bitbucket

bitbucket免费支持5个开发成员的团队创建无限私有代码托管库。bitbucket地址:

 

5.1.4、开源中国代码托管

开源中国一个账号最多可以创建1000个项目,包含公有和私有,开源中国代码托管地址: http://git.oschina.net/,其首页如图:

 

5.1.5、(推荐)coding.net

谈到coding.net,首先必须提的是速度快,功能与开源中国相似,同样一个账号最多可以创建1000个项目(5个私有),也支持任务的创建等。coding.net地址: https://coding.net/:

我个人比较推荐Coding.net、GItHub。

当然还有许多,如CSDN,百度,阿里等,欢迎大家比较后推荐。

选择国外的主机请考虑网速,选择国内的主机请考虑稳定与安全性。

 

5.2、申请帐号与设置

因为coding.net免费,可以创建私有项目,且速度不错,这里我们以coding.net为托管平台完成远程仓库的帐号申请与操作。

 

5.2.1、申请帐号

1)、打开 https://coding.net/,点击右上角的注册按钮:

 2)、填写好注册信息通过邮箱或手机验证后注册就成功了。登录到个人首页。

如果是QQ邮箱请注意激活邮件可能会被当着垃圾邮件,到垃圾箱中可以找到。

 

5.2.2、创建项目

登录成功后,点击左侧菜单项目,点击加号新建项目,这里创建的是一个公开项目,没有Readme.md、许可证与忽视文件,原因是如果你本地已经有一个项目了,想提交到远程仓库而新创建的3个文件本地没有,当然有办法但初学避免麻烦这里我就不添加这三个文件了,输入相关信息后点击创建就成功了。

 

5.2.3、提交源代码到远程仓库

从上图可以看出创建地址有两种:

https 类型的:https://git.coding.net/zhangguoGit/project7.git

SSH类型的:git@git.coding.net:zhangguoGit/project7.git

HTTPS(推荐轻量级用户使用)

使用加密的网页访问通道读写仓库,使用用户名及密码进行鉴权。 避免重复输入密码,查看 怎样在每次 Push 时不用重复输入密码?

提示:Git 用户名为 Coding 的账户邮箱或者个性后缀,密码为 Coding 的账户密码。
注意:HTTPS 方式 push 大文件可能引发错误,查看  Push 出错怎么办?

SSH(推荐资深用户或经常推送大型文件用户使用)

SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输。
使用加密通道读写仓库,无单次上传限制,需先设置 “账户 SSH 公钥”,完成配对验证。

导入仓库可以将已存在的Git项目或SVN项目直接导入。

在命令行创建项目:

#1、创建目录
mkdir project7

#2、进入目录
cd project7

#3、初始化目录为git项目
git init

#4、创建md文件追加内容# project7(一级标题)
echo "# project7" >> README.md

#5、添加说明文件到暂存区
git add README.md

#6、提交到本地仓库并写日志
git commit -m "first commit"

#7、添加远程主机,主机名为origin 地址为https://git.coding.net/zhangguoGit/project7.git
git remote add origin https://git.coding.net/zhangguoGit/project7.git

#8、本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了,-u 参数指定一个默认主机
git push -u origin master

如果创建已经创建则只需要第7步与第8步就好了。

 

5.2.4、Markdown文件(.md文件)

Markdown 是一种轻量级标记语言,它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。

Markdown 语法的目标是:成为一种适用于网络的书写语言。

1.标题

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

####### 七级标题

效果:

2.列表

分为有序列表和无序列表。

有序列表

1. 1
2. 2
3. 3

无序列表

* 1
* 2
* 3

3.引用

> 这是引用

4.图片和链接

两者格式区别在于“ ! ”。

![图片描述](图片链接)

[链接描述](链接地址)

5.粗体和斜体

**这是粗体**

*这是斜体*

6.表格

| Tables | Are | Cool |
| ------------ |:------------:| -----:|
| col 3 is | right-aligned| $1600 |
| col 2 is | centered | $12 |
| zebra stripes| are neat | &1 |

7.代码框

用``这个把代码包裹起来

8.分割线

输入***即可。

示例:

 

对应的HTML:

 

结果:

在线实时预览工具

 

5.3、远程仓库操作

申请到了Git远程仓库的帐号并创建了一个空的远程仓库现在我们就可以结合本地的仓库与远程仓库一起协同工作了,模拟多人协同开发,这里我们全部使用命令完成。

 

5.3.1、常用操作指令

# 下载远程仓库的所有变动
$ git fetch [remote]

# 显示所有远程仓库
$ git remote -v

# 显示某个远程仓库的信息
$ git remote show [remote]

# 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]

# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]

# 上传本地指定分支到远程仓库
$ git push [remote] [branch]

# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force

# 推送所有分支到远程仓库
$ git push [remote] --all

#简单查看远程---所有仓库
git remote  (只能查看远程仓库的名字)
#查看单个仓库 git remote show [remote-branch-name] #新建远程仓库 git remote add [branchname] [url] #修改远程仓库 git remote rename [oldname] [newname] #删除远程仓库 git remote rm [remote-name] #获取远程仓库数据 git fetch [remote-name] (获取仓库所有更新,但不自动合并当前分支) git pull (获取仓库所有更新,并自动合并到当前分支) #上传数据,如git push origin master git push [remote-name] [branch]
 

5.3.2、git clone 克隆

远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。

$ git clone <版本库的网址>

比如,克隆一个上课示例的版本库。

$ git clone https://github.com/zhangguo5/AngularJS04_BookStore.git

该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。

$ git clone <版本库的网址> <本地目录名>

git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

SSH协议还有另一种写法。

$ git clone [user@]example.com:path/to/repo.git/

通常来说,Git协议下载速度最快,SSH协议用于需要用户认证的场合。各种协议优劣的详细讨论请参考 官方文档。

示例:

结果:

 ProGit(中文版)
  • git官网: http://git-scm.com
  • git手册: http://git-scm.com/docs
  • 网友整理的Git@osc教程,请 点击这里;
  • 一份很好的 Git 入门教程,请 点击这里;
  • Git图解教程
  • 资料链接: https://pan.baidu.com/s/1c20DVOW  密码: p9ri

    示例1:

     

    示例2:

     

    示例3:

      503  clear
      504  git --version
      505  git config
      506  git config --global --list
      507  cd e:
      508  cd gitdemo
      509  cd..
      510  cd ..
      511  cd gitDemo
      512  mkdir project1
      513  rd project1
      514  rm project1
      515  rm --help
      516  rm project1 -r
      517  mkdir project1
      518  cd project1
      519  echo Hello f1.txt
      520  echo Hello > f1.txt
      521  echo Hello Git > f1.txt
      522  echo Hello Git >> f1.txt
      523  cat f1.txt
      524  echo Hello Git >> f1.txt
      525  echo Hello Git >> f1.txt
      526  cat f1.txt
      527  rm f1.txt -f
      528  clear
      529  git init #初始化仓库
      530  cd..
      531  cd ..
      532  git init project2
      533  cd project2
      534  echo Hello Git > f1.txt
      535  cat f1.txt
      536  clear
      537  git status
      538  git add -h
      539  cls
      540  reset
      541  git add f1.txt
      542  git status
      543  git rm --cached f1.txt
      544  git status
      545  echo Hello Git >> f2.txt
      546  ls
      547  git add .
      548  git status
      549  git commit f1.txt -m 添加了f1.txt文件到本地仓库
      550  git status
      551  git commit . -m 添加f2.txt与其它所有文件到本地仓库
      552  echo f3.txt > f3.txt
      553  echo f4.txt > f4.txt
      554  git status
      555  git add .
      556  git commit . -m 添加所有文件(f3,f4)
      557  git commit . -m 添加所有文件f3,f4
      558  git status
      559  echo #Git上课示例 >> README.md
      560  echo 临时文件 > temp.psd
      561  echo .psd > .gitignore
      562  git status
      563  git add .
      564  git commit -m 初始化仓库
      565  git status
      566  git remote add origin https://git.coding.net/zhangguo5/project2.git
      567  git remote
      568  git push -u origin master
      569  echo *.psd > .gitignore
      570  cat .gitignore
      571  echo *.psd
      572  echo "*.psd" > .gitignore
      573  cat .gitignore
      574  git status
      575  git commit -m 修改了gitignore
      576  git status
      577  git commit -a -m 修改了gitignore
      578  git status
      579  git push -u origin master
      580  echo a.psd > a.psd
      581  echo b.txt > b.txt
      582  git commit -a -m 添加了b.txt与a.psd
      583  git commit -a -m 添加了b.txt与a.psd
      584  git add .
      585  git commit -a -m 添加了b.txt与a.psd
      586  git status
      587  git push -u origin master
      588  echo o "#git上课示例" > README.md
      589  git add .
      590  git commit -a -m 添加了README.md
      591  git push -u origin master
      592  echo "#git上课示例" > README.md
      593  git add .
      594  echo "#git上课示例" > README.md
      595  git commit -a -m 添加了README.md
      596  git push -u origin master
      597  git history
      598  history
    
    
    
    mkdir project2 #创建目录
    cd project2  #进入目录
    git init  #初始化创建
    echo "# project2" >> README.md  #新增一个说明文件
    git add README.md
    git commit -m "first commit"
    git remote add origin https://git.coding.net/zhangguo5/project2.git
    git push -u origin master

    项目验收标准

    八、视频

    https://www.bilibili.com/video/av14813510/