Git学习小记(一)
2016-03-30 21:27
218 查看
------【查看类指令】
git diff :查看修改了之后,未add的文件的修改情况(比较的是工作区和暂存区的不同),diff就是different的缩写
git status : 查看修改后没有add的文件状态(红色),或者add后还没有commit的文件状态(绿色)
------【时光机类指令】
git reset --hard HEAD^ 退回到最近一次commit之前的状态(回退两个版本是HEAD^^,回退n个版本是HEAD^n)
git reset --hard 1234 退回到版本号为1234的版本
git reflog 记录了每一次执行的命令
------【提交类指令】
工作区 ---> 暂存区 ---> 版本库
git add 文件路径 :将文件从工作区添加到暂存区
git commit -m "message" : 将暂存区的所有内容提交到版本库中去
(新建或者新被复制到工作目录下的文件,处于一种Untracked状态,需要add后在commit才能加入版本库)
【相关概念】
工作区--被git管理的目录,也是就.git所在的目录
暂存区stage--用来存放add的东西(也叫缓存区(Index))
分支--最终保存commit的东西
暂存区和分支同属于版本库
------【比较】
git diff 比较工作区和暂存区的不同
git diff --cached 比较暂存区和版本库分支的不同
注意:commit之后,暂存区中的东西和版本库分支保持一致,并没有并清空,否则执行git diff会显示不同
------【Git和Vim】
git commit 回车后进入到Vim编辑器,输入提交信息
注意:进入Vim后,默认是命令行模式,要按一下i,才能进入到插入模式来输入信息。输入完毕之后,按ESC键回到命令行模式,输入ZZ来保存并退出
git log 回车后进入到Vim的底行模式,按q退出
git diff 回车后进入到Vim的底行模式,按q退出
------【撤销修改】
git checkout -- (file) :丢弃工作区的修改
--情况1.工作区(状态2),暂存区(状态1),版本库(状态1)
将工作区恢复为状态1
--情况2.工作区(状态3),暂存区(状态2),版本库(状态1)
将工作区恢复为状态2
--情况3.工作区(状态2),暂存区(状态2),版本库(状态1)
没有任何变化
那么问题来了,情况3如何撤销呢?
--git reset HEAD (file) : 将暂存区还原为版本库中的状态
执行之后,工作区(状态2),暂存区(状态1),版本库(状态1)
------【删除文件】
右键删除文件后,在工作区就看不到该文件了,但是版本库中还有最近一次commit的该文件的版本,可以通过上面的撤销修改的命令来恢复。
这里要注意的是,在Git中的“修改”的概念。
----Git中修改的含义
--文件内容:增加,删除
--文件:新建,删除
上面说到,仅仅在工作区下删除文件,版本库中仍然是有备份的,那如果想要在版本库中也删除这个文件呢?
----删除文件(工作区和版本库中的都删除)
--1.右键delete文件
--2.git rm (file) (这里可以理解为删除这个特殊操作的add,也就是将工作区内容同步到暂存区,就是暂存区也删除这个文件)
--3.git commit -m "message"
------【Https和SSH两种方式】
clone 项目到本地的时候,常用的是两种方式,https + url 或者SSH + url.
---Https方式
每次push都要输入账号密码
----SSH方式(本地库推送到远程库)
--clone之前要先配置SSH key,这要求自己是项目的拥有者。这种方式不用每次push都输入账号密码
--在GitHub上创建一个空仓库,然后把本地的仓库关联到GitHub上
-本地库关联远程库
git remote add origin git@github.com:androidnote/GitDemo.git
-本地库master分支内容推送到远程库master分支上
git push -u origin master
-本地提交之后,推送到远程库
git push origin master
-温馨提示:
第一次push会出现警告,输入yes即可
---Https方式(远程库clone到本地)
git clone https://github.com/androidnote/GitDemo.git
git diff :查看修改了之后,未add的文件的修改情况(比较的是工作区和暂存区的不同),diff就是different的缩写
git status : 查看修改后没有add的文件状态(红色),或者add后还没有commit的文件状态(绿色)
------【时光机类指令】
git reset --hard HEAD^ 退回到最近一次commit之前的状态(回退两个版本是HEAD^^,回退n个版本是HEAD^n)
git reset --hard 1234 退回到版本号为1234的版本
git reflog 记录了每一次执行的命令
------【提交类指令】
工作区 ---> 暂存区 ---> 版本库
git add 文件路径 :将文件从工作区添加到暂存区
git commit -m "message" : 将暂存区的所有内容提交到版本库中去
(新建或者新被复制到工作目录下的文件,处于一种Untracked状态,需要add后在commit才能加入版本库)
【相关概念】
工作区--被git管理的目录,也是就.git所在的目录
暂存区stage--用来存放add的东西(也叫缓存区(Index))
分支--最终保存commit的东西
暂存区和分支同属于版本库
------【比较】
git diff 比较工作区和暂存区的不同
git diff --cached 比较暂存区和版本库分支的不同
注意:commit之后,暂存区中的东西和版本库分支保持一致,并没有并清空,否则执行git diff会显示不同
------【Git和Vim】
git commit 回车后进入到Vim编辑器,输入提交信息
注意:进入Vim后,默认是命令行模式,要按一下i,才能进入到插入模式来输入信息。输入完毕之后,按ESC键回到命令行模式,输入ZZ来保存并退出
git log 回车后进入到Vim的底行模式,按q退出
git diff 回车后进入到Vim的底行模式,按q退出
------【撤销修改】
git checkout -- (file) :丢弃工作区的修改
--情况1.工作区(状态2),暂存区(状态1),版本库(状态1)
将工作区恢复为状态1
--情况2.工作区(状态3),暂存区(状态2),版本库(状态1)
将工作区恢复为状态2
--情况3.工作区(状态2),暂存区(状态2),版本库(状态1)
没有任何变化
那么问题来了,情况3如何撤销呢?
--git reset HEAD (file) : 将暂存区还原为版本库中的状态
执行之后,工作区(状态2),暂存区(状态1),版本库(状态1)
------【删除文件】
右键删除文件后,在工作区就看不到该文件了,但是版本库中还有最近一次commit的该文件的版本,可以通过上面的撤销修改的命令来恢复。
这里要注意的是,在Git中的“修改”的概念。
----Git中修改的含义
--文件内容:增加,删除
--文件:新建,删除
上面说到,仅仅在工作区下删除文件,版本库中仍然是有备份的,那如果想要在版本库中也删除这个文件呢?
----删除文件(工作区和版本库中的都删除)
--1.右键delete文件
--2.git rm (file) (这里可以理解为删除这个特殊操作的add,也就是将工作区内容同步到暂存区,就是暂存区也删除这个文件)
--3.git commit -m "message"
------【Https和SSH两种方式】
clone 项目到本地的时候,常用的是两种方式,https + url 或者SSH + url.
---Https方式
每次push都要输入账号密码
----SSH方式(本地库推送到远程库)
--clone之前要先配置SSH key,这要求自己是项目的拥有者。这种方式不用每次push都输入账号密码
--在GitHub上创建一个空仓库,然后把本地的仓库关联到GitHub上
-本地库关联远程库
git remote add origin git@github.com:androidnote/GitDemo.git
-本地库master分支内容推送到远程库master分支上
git push -u origin master
-本地提交之后,推送到远程库
git push origin master
-温馨提示:
第一次push会出现警告,输入yes即可
---Https方式(远程库clone到本地)
git clone https://github.com/androidnote/GitDemo.git
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结
- 使用git代替FTP部署代码到服务器的例子
- linux系统安装git及git常用命令
- 分享下自己总结的Git常用命令
- Git 常用命令速查表(图文+表格)