Git学习笔记(一)
刚开始学Git,记录下来,讹误之处还望指教。
安装好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命令来提交,提交完了之后再查看有什么不同就不存在问题了。
Git学习笔记(一)的更多相关文章
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- Git学习笔记(四)
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...
- git 学习笔记6--remote & log
git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...
- Git学习笔记---协作的一般流程
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...
- 【转帖】Git学习笔记 记录一下
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...
- [转]Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- GIT学习笔记(1):创建版本库
GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...
- GIT学习笔记(5):变基
GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...
- GIT学习笔记(4):远程分支
GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...
随机推荐
- Linux下fork()、vfork()、clone()和exec()的区别
转自Linux下fork().vfork().clone()和exec()的区别 前三个和最后一个是两个类型.前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定 ...
- 【UVA 11354】 Bond (最小瓶颈生成树、树上倍增)
[题意] n个点m条边的图 q次询问 找到一条从s到t的一条边 使所有边的最大危险系数最小 InputThere will be at most 5 cases in the input file.T ...
- CAS单点登录配置[2]:证书生成
上一篇介绍了准备工作,本片将介绍如何生成证书. 服务器端证书 1 我们在F盘下建立一个cas文件夹,在此文件夹中生成证书文件,打开命令窗口,进入此目录下,如图: 2 生成服务器端证书, 此命令用于在当 ...
- 四种必须知道的Android屏幕自适应解决方案
一.细说layout_weight 目前最为推荐的Android多屏幕自适应解决方案. 该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中.其值越小,则对应的layout ...
- [OJ] Find Minimum in Rotated Sorted Array II
LintCode 160. Find Minimum in Rotated Sorted Array II (Medium) LeetCode 154. Find Minimum in Rotated ...
- (转载)c库不正确问题
(转载)http://blog.csdn.net/piratejk/article/details/6115748 在linux下面变成,有时候在一个发行版本上编译通过,并且可以运行,但是将程序拷贝到 ...
- android报错——java.lang.ClassNotFoundException[android]
E/AndroidRuntime(1875): Caused by: java.lang.ClassNotFoundException:XXXXX in loader dalvik.system ...
- 【原】关于IPcamera几个问题的思考
安全性: 1.RTSP连接的权限管理. 2.视频加密(一般采用选择性加密算法,如对运动矢量,量化参数等进行加密.) 3.数字水印技术(用于版权等认证) 稳定性: 1.mobileIP 是用来进行丢包模 ...
- HDOJ 1004题 Let the Balloon Rise strcmp()函数
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- vim spf13
效果图来一个: http://vim.spf13.com/ 这个网站里面的vim配置非常全,推荐. 下面是对这个vim快捷键总结: <Leader> 是"," 打卡一个 ...