Git命令大全

 
GIt的设计者让使用者觉得自己比想象中的笨。--Andrew Morton
不要高估自己的智商,不要低估git的能力。
 
 
1.设置配置user和email
  git config --global user.name "xxx"
  git config --global user.email "xxx@qq.com"
 
2.查看设置
  git config --list
 
3.创建文件夹  a
   cd  a;
  git init
 
4.添加程序 到暂存区域
  git add REDEME.md
  git add *
 
5.暂存区域 提交文件 到仓库  -m“备注”
  git commit -m "add a readme file"
 
 
6.查看状态:
  D:\Git workspace>git status
  On branch master
  nothing to commit, working directory clean
 
6.1 将仓库区域的文件恢复暂存区域
  git reset HEAD 文件名
 
7.添加MIT协议文件:
  MIT许可证(The MIT License)是许多软件授权条款中,被广泛使用的其中一种。与其他常见的软件授权条款(如GPL、LGPL、BSD)相比,MIT是相对宽松的软件授权条款。
 
Copyright © 2017 <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
8.将暂存区域的覆盖工作目录
  git checkout -- LICENSE
 
9.git 历史日志
  git log
  9.1 git log 查看历史所有版本信息
  9.2 git log -x 查看最新的x个版本信息
  9.3 git log -x filename查看某个文件filename最新的x个版本信息(需要进入该文件所在目录)
  9.4 git log --pretty=oneline查看历史所有版本信息,只包含版本号和记录描述
 
 
10.回到过去
  git reset "HEAD^"
 
  git reset --mixed HEAD~
      --mixed默认选项  
      HEAD~10,回到10个版本以前
 
  1.移动HEAD的指向,将其指向上一个快照(影响的是仓库,指向之前的版本,之前版本没有删除)
  2.将HEAD移动后指向的快照回滚到暂存区域(影响的是暂存区域)
 
  git reset --soft HEAD~
    1.移动HEAD的指向,将其指向上一个快照(影响的是仓库,指向之前的版本,之前版本没有删除)
  git reset --hard HEAD~(有危险的操作)
    1.移动HEAD的指向,将其指向上一个快照(影响的是仓库,指向之前的版本,之前版本没有删除)
    2.将HEAD移动后指向的快照回滚到暂存区域(影响的是暂存区域)
    3.将暂存区域的文件还原到工作目录
 
11.回滚指定的快照
  git reset 快照id(前5位)
 
12.回滚个别文件
  git reset 版本快照 文件名/路径  (但是head的指向的快照不变)
 
13.回滚未来
    git reflog
 
版本对比
1.比较文件内容
 git diff
 
  j:往下移动一行
  K:往上移动一行
  F:往下移动一页
  B:往上移动一页
 
  d:往下移动半页
  u:往上移动半页
  g:跳到第一行  3g 5g第几行
  G:调到最后一行
  /:从上往下搜索   
  ?:从下往上搜索
  n:搜索到的下一个,N搜索到的上一个
  h:命令大全
  q:退出
 
1.比较工作目录和暂存区域
    git diff
 
2.比较两个历史快照
    git diff id-1 id-2  (前5位)
 
3.比较当前工作目录和历史仓库的快照
    git diff 历史ID
比较当前工作目录和仓库的master快照
    git diff HEAD
 
4.比较暂存区域和Git历史仓库快照
  git diff --cached 
  git diff --cached ID
 
5.提交暂存区域并提交仓库
  git commit -am “XXX”
 
 
 
修改最后一次提交、删除和重命名文件
 
实际开发情景:
  1. 版本提交commit发现有两个文件遗漏添加add    
  2. 版本刚一提交,版本说明写的不全面 
 
1.进入编辑页面
    git commit --amend  
2.直接更改修改说明
    git commit --amend -m "XXX"
 
删除
3.恢复暂存区域文件到工作目录
    git checkout -- yellow.jpg
4.删除暂存和工作目录文件,仓库并不会删除,取消跟踪,在下次提交的时候不纳入版本管理
    git rm yellow.jpg
5.回退仓库版本
    git reset --soft HEAD~
 
6.强制删除 -简写 --全名
    git rm -f XXX.txt
7.只删除暂存区域
    git rm --cached xxx.txt
 
8.重命名文件
    git mv  旧文件名  新文件名
 
 
 
分支管理
1.创建分支
    git branch 分支名字
 
2.查看 --decorate显示指向提交的所有引用,eg:分支、标签
         --oneline 精简模式,显示一行
    git log --decorate --oneline
 
3.切换分支
    git checkout L(分支名)
    git checkout master(切换到主分支)
 
4.以图形化的方式单行显示所有分支显示 --graph图形化
    git log --decorate --oneline --graph --all
 
合并分支 
 
    git merge L
 有冲突解决冲突,在递交一次,如果没有冲突的话,直接移动Head->master引用到分支上
 
 1.删除分支
    git branch --delete L2
    git branch -d L
 
2.匿名分支
      git checkout HEAD~
  创建匿名分支,匿名分支适合于做实验,再切回master的话,匿名分支不保留,如果想保留
  执行 git checkout -b 匿名分支名 分支id 
 
checkout 命令
   1 从历史快照(或者暂存区域)拷贝文件到工作目录
        git checkout HEAD~README.md 复制文件到工作目录和暂存区域
   
     如果没有指定具体的快照版本, 则将暂存区域恢复指定文件到工作目录(git checkout README.md)
     git checkout -- README.md 确保自己的分支没有 叫 README.md,也可以区分文件名
 
    2 切换分支
    git check 分支名(ID,HEAD~) 除了切换分支,还会替换工作目录和暂存区域
 
reset 和 checkout 区别
  1.  checkout和reset命令都可以用于恢复快照的指定文件,并且他们都不会改变HEAD的指针
    区别
    reset命令只是将文件恢复到暂存区域(--mixed),而checkout命令是同时覆盖暂存区域和工作目录,reset更加安全一些
    注意:也许你试图使用 git reset --hard HEAD~ README.md 命令让reset同时覆盖工作目录,但是git会告诉你这是徒劳的,此时的reset不允许使用--soft和--hard选项
 
 
    2.恢复快照
      reset 命令是用来“回到过去”的,根据选项的不同,reset命令将移动HEAD指针(--soft)->覆盖暂存区域(--mixed)->覆盖工作目录(--hard)
      checkout命令虽然是用于切换分支,实际也是通过移动HEAD指针和覆盖暂存区域、工作目录实现的
    区别:
    1.对于reset --hard命令 来说,checkout命令更加安全,因为checkout命令在切换分支前会先检查一下当前的工作状态,如果不是clean的话,git不会允许操作,而reset --hard命令直接覆盖所有的数据。
    2.如何更新HEAD的指向,reset命令会移动HEAD所在分支的指向,而checkout命令只会移动HEAD自身来指向另一个分支。
 
github
 
1.关联远程仓库
  git remote add origin https://github.com/XXX/XXX.git
 
2.把本地库的所有内容推送到远程仓库上
  git push -u origin master
 
3.将master分支上的内容拉到本地上
  git pull origin master 
 
4.获取github上的项目,需找到项目地址
  git clone 项目地址
 
 
 
                                      -------欢迎来到github世界上最大的同性交友大家庭之中!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/Metroe/p/11250289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值