git入门(常用命令操作)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Page 4
1.2 集中式版本控制系统(CVCS)
· 集中式版本控制系统(CVCS): 这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的 集中管理服务器,保存所有文件的修订版本,而协同工作的开发人员都通过 客户端连到这台服务器,取出最新的文件或者提交更新。 这么做最显而易见的缺点是中央服务器的单点故障。如果宕机一小时, 那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务 器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就还是会有丢失数 据的风险,最坏的情况是彻底丢失整个项目的所有历史更改记录。
* --hard 参数后文再做详解
Page 29
4.2 版本回退
· 此时 helloworld.cpp 文件成功退回到上一个版本
Page 30
4.2 版本回退
· 放弃回退 如果想放弃回退,依然可以使用 "$ git reset --hard ID" 来恢复, 但是必须知道要恢复版本的ID号,因为 Git log 只存储最后一次版本 之前的版本记录,所以需要 git reflog 来找回之前的版本号, git reflog 用来记录用户输入的每一次命令。 $ git reset --hard 4da437f · 此时的 log 信息
Page 3
1.1 关于版本控制
常用的版本控制系统分为两类: · 集中式版本控制系统(SVN、SCV)
——(Centralized Version Control Systems,简 称 CVCS)
· 分布式版本控制系统(Git)
称 DVCS) ——(Distributed Version Control System,简
·
提示helloworld.cpp被修改过,但是还没有被准备提交的修改
Page 26
4.1 添加修改
· 使用 git diff 命令可以查看具体修改的内容
·
查看完修改后,经过 add 和 commit 就可以将修改添加到版本库
Page 27
4.2 版本回退
· 使用 git log 命令可以查看 commit 的记录
Page 13
2.1 Git 的帮助与初始化
· 输入如下命令可以显示 Git 的配置信息
$ git config --list
Page 14
2.1 Git 的帮助与初始化
· 输入如下命令可以设置 Git 的用户名和Email
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
Page 20
3.1 创建版本库
· 使用 git add 命令将新文件添加到仓库 $ git add helloworld.cpp · 此时工作区状态
Page 21
3.1 创建版本库
· 使用 git commit 命令将新文件提交到仓库 $ git commit -m "add a helloworld.cpp file"
Page 23
本地版本控制 04 Local Version Control
Page 24
4.1 添加修改
· 如图给 helloworld.cpp 添加一行文本
* Git 已追踪文件的图标会随着工作区状态Leabharlann Baidu改变而改变
Page 25
4.1 添加修改
· 使用 git status 命令查看当前仓库工作区的状态
Page 37
4.4 撤销修改
· 此时工作区状态提示有一个修改
·
Git 提示使用 git checkout -- <file>... 可以还原修改 $ git checkout -- helloworld.cpp
Page 38
4.4 撤销修改
· 修改被撤销
Page 39
4.4 撤销修改
Page 31
4.2 版本回退
· 使用 git reflog 找回版本号并且撤销回退
* --版本号写前几位即可,Git会自动查找。
Page 32
4.3 工作区和暂存区
· 工作区即当前目录下除了 .git 文件夹的其他目录
Page 33
4.3 工作区和暂存区
· 版本库即工作区目录下的 .git 文件夹,Git的版本库里存了很多 东西,其中最重要的就是称为stage(或者叫index)的暂存区,还 有Git为我们自动创建的第一个分支master,以及指向master的一 个指针叫HEAD。
* 应当尽量避免使用含有中文的路径
$ git init Initialized empty Git repository in c:/Users/qingyu/Desktop/gittest/.git/
Page 16
创建版本库 03 Create Repository
Page 17
3.1 创建版本库
Git-分布式版本控制系统
——惠晴雨
版本控制 01 Version Control
Page 2
1.1 关于版本控制
· 版本控制系统是一种记录若干文件内容变化,以便将来查阅修订特 定版本或还原部分文件的系统。 · 在程序开发过程中,采用版本控制系统管理可以将某个文件回溯到之前的 状态,甚至将整个项目都回退到过去某个时间点的状态。可以比较文件的变 化细节,查出是谁修改了哪个地方,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,无论对文件做何种修改,也照样可以轻松 恢复到原先的样子,但额外增加的工作量却微乎其微。
Page 43
4.5 删除文件
· 在 Git 中删除也属于修改操作,如图添加 test.txt 文件并且合并到 当前分支
记录中有提交的作者,Email,提交时间,以及 commit 时输入的 -m 参数后的文本;其中 commit 后的数字表示 commit id(版本 号),是一个SHA1计算出来的一个非常大的数字,用十六进制表示。
Page 28
4.2 版本回退
· 退回到上一个版本 首先,Git必须知道当前版本是哪个版本,在Git中,用 HEAD 表 示当前版本,也就是最新的提交 4da437...cd46e2,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上100个版本写100 个^比较容易数不过来,所以写成 HEAD~100。 现在,我们要把当前版本“add a new modified line”回退到 上一个版本“add a helloworld.cpp”,就可以使用git reset命令。 $ git reset --hard HEAD^
Page 34
4.3 工作区和暂存区
·
将文件添加到Git版本库的时候,是分两步执行的:
第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到 暂存区; 第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容 提交到当前分支。
* 每次修改,如果不 add 文件到暂存区,则在 commit 时并不会合并修改到当前分 支。
Page 8
1.3 分布式版本控制系统(DVCS)
· 分布式版本控制系统(DVCS):
Page 9
2.1 Git 的帮助与初始化
· Windows环境下Git安装成功后, 右键菜单中会出现 “Git Bash” 选项,点击后会弹出Git命令行窗 口。
Page 10
Git 帮助与初始化 02 Git Help & Initialize
Page 7
1.3 分布式版本控制系统(DVCS)
· 在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上 推送版本库的修改。分布式版本控制系统通常也有一台充当“中央服务器” 的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它 大家也可以同步文件,只是交换修改不方便而已。 · Git超越SVN等版本控制系统在于其极其强大的分支管理工具。
Page 11
2.1 Git 的帮助与初始化
Page 12
2.1 Git 的帮助与初始化
· 输入如下命令可以显示 Git 的帮助信息 $ git help · 加上 -a 参数可以显示所有帮助信息
$ git help -a
· 加上具体命令可以查看详细的帮助内容 $ git help add
* --global 表示设置的范围(系统,全局,项目)
· 修改前需要先使用 --unset 参数清空需要修改的设置 $ git config --unset --global user.name
Page 15
2.1 Git 的帮助与初始化
· 使用 init 命令可以初始化一个仓库(repository),同时在当前目 录下会生成一个用来跟踪管理版本库的 .git 文件夹
· 如图在 Git 的目录下添加一个有内容的文本文件
Page 18
3.1 创建版本库
· 添加完成之后,使用 git status 命令查看当前仓库工作区的状态 $ git status
Page 19
3.1 创建版本库
· 使用 git status 命令查看当前仓库工作区的状态
$ git status # On branch master // 主分支下 # # Initial commit # # Untracked files: // 有未跟踪的文件 # (use "git add <file>..." to include in what will be committed) # # helloworld.cpp // 未跟踪的文件名 nothing added to commit but untracked files present (use "git add" to track)
Page 5
1.2 集中式版本控制系统(CVCS)
· 集中式版本控制系统(CVCS):
Page 6
1.3 分布式版本控制系统(DVCS)
· 分布式版本控制系统(DVCS): 分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完 整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自 己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作 呢?比方你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A, 这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修 改了。 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多, 因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不会影响整个 团队的代码安全。而集中式版本控制系统的中央服务器要是出了问题,后果 则严重得多。
· 此时工作区状态
Page 22
3.1 创建版本库
· git commit 命令 $ git commit -m "add a helloworld.cpp file" -m后面输入的是本次提交的说明,可以输入任意内容,当然最好 是有意义的,这样就能从历史记录里方便地找到改动记录。 Git完整的添加文件需要先 add 再 commit 两步。
Page 35
4.4 撤销修改
撤销修改分为三种情况: · 仅仅修改了工作区内容,未添加到暂存区 · 修改了工作区内容并且添加到暂存区,但未提交修改 · 修改被添加到暂存区并且提交了修改
Page 36
4.4 撤销修改
情况一: 仅仅修改了工作区内容,未添加到暂存区(没有经过 add 和 commit 的修改),如图
情况二: 修改了工作区内容并且添加到暂存区,但未提交修改 (经过 add 但未 commit 的修改),如图
Page 40
4.4 撤销修改
· 添加修改到暂存区后的工作区状态
·
Git 提示使用 git reset HEAD <file>... 可以还原修改 $ git reset HEAD helloworld.cpp
Page 41
4.4 撤销修改
· 使用 reset 命令后的工作区状态
此时暂存区的修改被撤销,还原到了情况一的状态,再使用 checkout 命令即可还原工作区。
Page 42
4.4 撤销修改
情况三: 修改被添加到暂存区并且提交了修改(经过 add 和 commit 的修改),此时只要退回版本即可 $ git reset --hard HEAD^
相关文档
最新文档