博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git 使用精华(1)
阅读量:6770 次
发布时间:2019-06-26

本文共 2142 字,大约阅读时间需要 7 分钟。

hot3.png

1.git clone 是吧git仓库复制一份出来,把该项目的历史的所有数据都收取,服务器上的数据clone到本地。如果someday 服务器坏了,用任何一个克隆出来的客户断的数据都可以重新建立服务器上的仓库(repository)

2.四种状态 untracked unmodified modified staged

3.一个新文件(untracked)--> git add --> staged 状态。

4.在Changes to be commited 这行下面的,就说明是已暂存状态staged

5.git add 命令是个多功能命令,根据目标文件的状态不同,效果不同:

  a.开始track 一个新文件
  b.把已经tracked的文件放到staged区域
  c.合并是把有冲突的文件标记为已解决状态。

6.文件a,已经用git add加到staged,但此时修改下a,那么只是修改的本地当前版本,而非staged区域的版本;如果此时git commit,则提交的是staged里面没有修改的版本;如果此时git status,会发现stage区域里面有记录a(Changes to be committed)同时当前修改区域里面(Changed but not updated)里面也会出现a被修改的记录;需要再次git add才会把对a的修改覆盖到staged区域。

    总结:staged和当前版本是两个版本,修改当前版本不会影响staged;需要再次add 才能覆盖staged。

 7.查看 当前修改和staged的不同直接用    git diff

    查看 staged 和之前commit的不同用    git diff --staged

  8. 每一次commit都是对项目进行一次快照,之后可以回到这个快照或者和这个快照进行比较。

 9.一般步骤: git add;git commit

   跳过git add步骤:git commit -a 会自动把所有已经跟踪过的文件staged,然后在一并提交,跳过git add;不过实验发现对新添加没有track的文件,还是要先
  git add 使之变成tracked,然后才能用。

 10. a. git rm 删除工作目录中的文件,并且以后不会跟踪此文件。

     b.   如果单纯手工删除工作目录中的文件,git status会出现在Changed but     not updated。再次运行git rm 可以消除这个。
     c. git rm -f 连同暂存区的内容也删除。
     d. git rm --cached 只删除暂存区的内容,当前目录的还要保留。

     如何恢复呢?

     (1) 回退所有内容到上一个版本
git reset HEAD^
(2) 回退a.py这个文件的版本到上一个版本
git reset HEAD^ a.py
(3) 向前回退到第3个版本
git reset –soft HEAD~3
(4) 将本地的状态回退到和远程的一样
git reset –hard origin/master
(5) 回退到某个版本
git reset 057d
(7) 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit
git revert HEAD
 git checkout a6d05a68d9f0e48bed697e05e55e3b20d5fa2f2a test.c
 恢复某文件到指定版本
 git checkout ${commit} /path/to/file
 
  11.git log -p(显示每次提交的内容差异) -2(仅显示最近两次更新)
     git log --stat 统计 增加减少的行数
     git log --pretty=oneline 每条在一行显示,方便在很多内容查找
     
  12.git commit --amend 修改commit信息或者重新提交
     用法:1.提交完事之后发现提交信息不对,那直接用git commit --amend 会跳出文本编辑器,修改保存退出后,就覆盖了之前的提交。
           2.提交完事之后发现忘记提交某些文件,那先git add forgotten_files 然后运行git commit --amend
   13.git reset HEAD <file>撤销staged 恢复到unstaged状态,但是修改还是保留。
      如果不保留修改可以git checkout commitid file
      git将单个文件恢复到历史版本的正确方法如下:
   git reset commit_id 文件路径
   git checkout -- 文件路径
   
   14. 远程原始仓库用git remote 来看,一般是origin。git remote -v 查看显示clone的地址。
  15. 设置命令别名:
 git config --global alias.unstage 'reset HEAD --' 把reset HEAD -- 替换成别名unstage,这样直接可以用git unstage 这条命令了。

转载于:https://my.oschina.net/talentwang/blog/712421

你可能感兴趣的文章
『算法设计_伪代码』快速排序
查看>>
LoadRunner使用教程
查看>>
javascript进行遍历
查看>>
npm 模块化方式接入 font-awsome
查看>>
【七牛云】使用七牛云进行文件上传业务,图片处理,缩放等业务 详情查看七牛云使用说明...
查看>>
Perl匿名数组、hash和autovivification特性
查看>>
协变、逆变总结
查看>>
springboot mybatis 分页整合
查看>>
SpringBoot------自定义Logback日志
查看>>
180227
查看>>
18-(基础入门篇)GPRS(Air202)拨打电话
查看>>
解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
查看>>
Spark:实现行转列
查看>>
js Object.create 初探
查看>>
增量更新
查看>>
js 原型链 prototype __proto__
查看>>
Could not find com.android.tools.build:aapt2:3.2.0-alpha14-4748712.
查看>>
MS BizSpark计划-免费提供软件和服务
查看>>
『转载』NetBeans开发J2ME手机程序之——文件浏览器
查看>>
软件测试之魂:核心测试设计精解(第2版)
查看>>