我的Git学习笔记
来源:互联网 发布:逆天pcb软件 编辑:程序博客网 时间:2024/05/17 22:29
学习Git前零星的了解些基本知识
一,什么是版本控制
比如,一个文件改了一遍又一遍,突然发现更改的思路完全不正确。想回到某次修改之前怎么办?版本控制就良好的解决了这些问题。
它可以记录文件每次修改的变化,以方便以后进行查阅某个特定的版本。
最简单的版本控制,每个版本修改前拷贝一个副本,然后在此副本做修改。想回到修改之前那就很简单。
如果多人协作的话,就需要集中式的版本控制,有一台服务器保存着文件所有的版本。每个人都取出最新的文件或提交更新到服务器。这也是很常见的版本控制方式。
但是如果服务器出现故障,那么所有人都不可以提交更新。假如服务器的磁盘出现问题,很可能就会丢失数据。因为你不能保证,本地有人提取出了最新的文件。
有句话很重要,只要整个项目的历史记录存放在单一的位置,就有丢失所有历史数据的风险。
于是分布式的版本控制应运而生。客户端提取出的项目,不仅是最新的文件快照,而且还把代码仓库完整的download下来了。
这也就意味着,即使服务器出现问题,只要有人曾提取过,就可以通过本地的仓库进行恢复。(这个实在吊炸天)
二,Git若干特点
1,Git只关心文件的整体是否发生变化,而不关心文件的内容发不发生变化。
变化文件的快照会被保存。
比如A文件被修改了,提交更新时,就会发现它被修改。(通过计算文件的sha1值)
A被修改,git就会对该文件做一个快照。并保存指向这次快照的索引。文件没有变化,那么Git不会保存。
2,几乎所有的操作都是在本地操作。
3,不可能你修改了文件,Git不知道。Git会根据文件或目录的结构计算出一个sha-1值。进行比对sha-1值的变化来看是否修改。
4,在Git中,只要提交了文件快照(也就是执行git add),就不用担心数据的丢失。
5,文件的三种状态:
已提交:文件安全的保存在本地数据库,可以认为这些文件未被修改过。
已修改:文件修改,但没放入暂存区。(暂存区其实只是一个简单的文件)
已暂存:文件修改,且放入了暂存区。
最基本的git流程:
修改了文件;把修改的文件进行快照,然后保存到暂存区;把暂存区的文件快照永久的转储到Git目录。
查看你的Git配置命令:git config --listcore.symlinks=falsecore.autocrlf=truecolor.diff=autocolor.status=autocolor.branch=autocolor.interactive=truepack.packsizelimit=2ghelp.format=htmlhttp.sslcainfo=/bin/curl-ca-bundle.crtsendemail.smtpserver=/bin/msmtp.exediff.astextplain.textconv=astextplainrebase.autosquash=trueuser.name=ronaldo //个人用户名user.email=distincofwang@gmail.com //个人邮箱
三,Git基础知识
1,如何取得Git项目的仓库
第一种:自己创建git仓库git init 初始化某个目录,表示用git进行管理git add 对文件进行跟踪git commit 对文件进行提交
第二种:直接git clone,克隆现有的仓库
2,git常用的命令
对于首次clone下来的项目,使用git status查看状态,显示的是:# On branch masternothing to commit (working directory clean)其中master是默认的分支名称。第一次clone下来的文件都是已跟踪的,已跟踪的文件表示是都被纳入到版本控制的管理中,上次快照有它们的记录。而此时我在其中,创建一个新文件README.txt,git status,显示的是:Untracked files: (use "git add <file>..." to include in what will be committed) README.txtnothing added to commit but untracked files present (use "git add" to track)表示该文件未被跟踪。如果修改某个已跟踪的文件,使用git status会显示:Changes not staged for commit未暂存需要被提交已跟踪的文件且被加入到暂存区,使用git status会显示:Changes to be committed:已暂存需要提交对于未跟踪的文件,git add可以将其转变为已跟踪的文件且放入到暂存区。而对于已跟踪被修改的文件,使用git add可以将其放入到暂存区。通过上面一系列演示,下面这张图就不难理解了。
.gitignore要养成一开始就设置好.gitignore文件的习惯,忽略掉对某些不需要追踪文件的追踪。git diff查看文件的差异,此处用到再深入git commit进行提交,把暂存区的快照永久的转储到Git目录中。注意的是必须要加上-m,进行描述。如果想commit只要修改过的已跟踪的文件,可以使用:git commit -a。它会跳过git add的命令。使用git删除文件。首先可以是手动的删除文件,使用git status,显示:Changes not staged for commit:
- 我的git学习笔记
- 我的Git学习笔记
- 我的Git学习笔记
- 我的git学习笔记——git 邮件发送
- 我的Git学习笔记(二) git分支理解
- 我的Git笔记
- 我的git笔记
- 我的git笔记
- 我的git笔记
- 我的git笔记
- 我的git笔记(9)
- 我的GIT使用笔记
- git的学习笔记
- git的学习笔记
- 我的学习笔记
- 我的学习笔记
- 我的学习笔记
- Git学习笔记---git的初始化
- svn版本升级
- jdk安装
- 你应该知道的 RPC 原理
- git操作常用命令
- 开启新篇章
- 我的Git学习笔记
- csu1164 Dominating
- AS下配置OpenCV环境
- 无需软件开启wifi
- 将SVN服务器程序安装成Windows服务的方法
- 阿里云maven中国仓库
- 自定义video标签的大小
- Android研发规范
- Android studio 编译 release版本 命令