Git学习笔记(一)
2015-06-11 21:04
253 查看
刚开始学Git,记录下来,讹误之处还望指教。
安装好git之后,有两个东东,如图:
git bash 表示是命令行操作。
git GUI 表示是图形化操作。但是这个界面用起来不方便,另一个图形化操作工具是Tortoise Git,不过个人并不建议使用图形化操作界面,因为不方便在Linux和Windows之间来回切换。
好了,废话不多说,安装好之后点击git bash,打开如图界面:
可以通过help命令查看帮助,git中的帮助文档是一个html文件:
如图:
查看命令:git help git
打开的html文件:
好了,现在可以先给git配置一个用户名和邮箱了,如果不配置,在check时系统会提示你输入用户名和邮箱。
使用
在git的使用过程中有三个区域需要我们理解,分别是remote repository(远程仓库)、local repository(本地仓库) 以及stage areal(临时工作区)
远程服务器用来存放最终的代码,在一个分布式环境中可能有多个本地仓库,在本地仓库和我们的代码之间的缓冲区域称作stage areal。比如说添加了,但是没有commit那么此时代码存在于stage areal。
把一个本地文件夹初始化为一个git仓库。
初始化成功之后,git文件夹中多了一个.git的隐藏文件夹,我们后面上传的代码全部放在.git中的objects文件夹中。
创建一个名为hello的新文件,并向其中写入hello world
使用
然后使用commit命令将代码提交到本地仓库中,这时就真正提交到objects文件夹中了,后面的
我们的工作区和.git文件夹位于同一个文件夹中。
查看目前文件的状态
如果我们在git目录下新建一个名为123的文本文档,如图:
这时123.txt还没有被版本管理,所以前面是一个问号,我们再执行
注意红色的文字,它建议我们使用git add 将未被管理的文件提交。
使用
假设我们的项目中有一个bin.dll文件,这个文件我们不需要把它提交到版本仓库中,那么怎样设置忽略呢?
使用
此时再查看状态就不会有任何问题。如上图。如果新文件或者文件夹不需要被版本管理,那么只需要把该文件的名称加入到.gitignore文件中即可。
git中还有一个diff命令用来比较版本仓库的不同之处,diff命令包含两个,一个是
我们在123.txt文件中新加一句“123456”,然后使用git diff命令查看workspace和staged有什么不同,如图:
注意绿色文字,是说workspace中的文件比staged中的文件多出一行“123456”,那么我们使用
workspace和staged中的文件一样了,那么staged和local repository中的文件又是否一样呢?我们使用
注意绿色文字,这是说staged中的文件内容比local repository中文的文件内容多出一行“123456”,这是我们需要使用commit命令来提交,提交完了之后再查看有什么不同就不存在问题了。
安装好git之后,有两个东东,如图:
git bash 表示是命令行操作。
git GUI 表示是图形化操作。但是这个界面用起来不方便,另一个图形化操作工具是Tortoise Git,不过个人并不建议使用图形化操作界面,因为不方便在Linux和Windows之间来回切换。
好了,废话不多说,安装好之后点击git bash,打开如图界面:
可以通过help命令查看帮助,git中的帮助文档是一个html文件:
如图:
查看命令:git help git
打开的html文件:
好了,现在可以先给git配置一个用户名和邮箱了,如果不配置,在check时系统会提示你输入用户名和邮箱。
--global表示你配置的用户名和密码是全局变量。
使用
git config --list命令可以查看所有的配置信息。
在git的使用过程中有三个区域需要我们理解,分别是remote repository(远程仓库)、local repository(本地仓库) 以及stage areal(临时工作区)
远程服务器用来存放最终的代码,在一个分布式环境中可能有多个本地仓库,在本地仓库和我们的代码之间的缓冲区域称作stage areal。比如说添加了,但是没有commit那么此时代码存在于stage areal。
把一个本地文件夹初始化为一个git仓库。
初始化成功之后,git文件夹中多了一个.git的隐藏文件夹,我们后面上传的代码全部放在.git中的objects文件夹中。
创建一个名为hello的新文件,并向其中写入hello world
使用
git add hello将刚才的hello文件提交,但是这时的提交只是保存在stage areal中,并没有保存到objects文件夹中,也就是在.git文件夹中的index文件中,不过这是一个二进制文件,我们用记事本打开是乱码的。
然后使用commit命令将代码提交到本地仓库中,这时就真正提交到objects文件夹中了,后面的
-m "init hello"是注释。
我们的工作区和.git文件夹位于同一个文件夹中。
查看目前文件的状态
git status:
如果我们在git目录下新建一个名为123的文本文档,如图:
这时123.txt还没有被版本管理,所以前面是一个问号,我们再执行
git status,如图:
注意红色的文字,它建议我们使用git add 将未被管理的文件提交。
使用
git add 123.txt将文件提交到stage areal中,然后使用
git commit 123.txt将文件提交到本地仓库中。这时再查看文件状态,就没有问题了。
假设我们的项目中有一个bin.dll文件,这个文件我们不需要把它提交到版本仓库中,那么怎样设置忽略呢?
使用
echo "bin" > bin.dll新建一个bin.dll文件,再把这个文件 名称添加到gitignore文件中,然后打开.gitignore,向其中手动加入内容.gitignore表示把这个文件也忽略掉。如图:
此时再查看状态就不会有任何问题。如上图。如果新文件或者文件夹不需要被版本管理,那么只需要把该文件的名称加入到.gitignore文件中即可。
git中还有一个diff命令用来比较版本仓库的不同之处,diff命令包含两个,一个是
git diff --staged,另一个是
git diff --cached,这两个命令有什么不同呢?
git diff --staged 表示 workspace VS staged git diff --cached 表示 staged VS local repository git diff 表示 git diff --staged
我们在123.txt文件中新加一句“123456”,然后使用git diff命令查看workspace和staged有什么不同,如图:
注意绿色文字,是说workspace中的文件比staged中的文件多出一行“123456”,那么我们使用
git add 123.txt将该文件重新提交,提交完了再查看有什么不同,这个时候没有任何提示,说明完全一样,如图:
workspace和staged中的文件一样了,那么staged和local repository中的文件又是否一样呢?我们使用
git diff --cached来查看一下。
注意绿色文字,这是说staged中的文件内容比local repository中文的文件内容多出一行“123456”,这是我们需要使用commit命令来提交,提交完了之后再查看有什么不同就不存在问题了。
相关文章推荐
- 树的遍历
- AD(Active Directory)域信息同步,组织单位、用户等信息查询
- Git学习笔记(一)
- Git学习笔记(一)
- Android之NDK开发
- Kickstart的高级应用
- using使用法总结
- C++ 读写文件流
- 《梦断代码》阅读笔记03
- 聊聊C++临时对象的析构时间点------顺便再次提醒大家谨慎使用string的c_str方法
- Ubuntu 上安装 Freemind 并支持中文
- Minimum Sum LCM(uva10791+和最小的LCM+推理)
- 上下文切换
- uva 10099 The Tourist Guide(最“大”生成树)
- 为什么operator<<>>运算符重载一定要为友元函数呢?
- 冒泡排序(Java版)
- [译]针对科学数据处理的统计学习教程(scikit-learn教程2)
- 【Linux】嵌入式开发,在Linux中使用C语言对标准I/O库文件的替换Copy
- 【实验总结二】如何从文本中批量导入数据
- linux入门基础——linux系统启动详解