参考资料:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

mkdir myfirstgit    创建文件夹
cd myfirstgit     进入文件夹
git init   将当前目录初始化为Git可以管理的仓库

在文件夹下创建一个 readme.txt

git add readme.txt  把文件添加到暂存区
git commit -m "wrote a readme file"  将暂存区的内容添加到当前分支
git status  查看仓库当前状态
git diff readme.txt  查看修改的内容(本地与分支的区别)
git log  显示从最近到最远的提交日志
git reflog  显示命令历史,可以寻找想要回到的版本号
git log --pretty=oneline  日志显示在一行

ada04491a09c50f961b1922724a1b5f5dd57fca7 add haha
bb8a26a10a19e65f3b349f112915c06824002cca add haha
9f43d06753969af9e762c45b4b75ab62d4c68c7b add distributed
29a22385cad2a56a7b58f73ecd5750e773d530c4 wrote a readme file

前面的长串为版本号

git reset --hard HEAD^    回到上一个版本
git reset --hard HEAD^^  回到上上个版本
git reset --hard 9f43d06  回到这个版本号指定的版本

git checkout -- readme.txt  把readme.txt文件在工作区(本地)的修改全部撤销.
  readme.txt修改后没有放到暂存区,撤销修改就回到和版本库相同的状态。
  readme.txt已经添加到暂存区,又进行了修改,撤销修改会回到添加到暂存区后的状态。

git reset HEAD readme.txt  撤销暂存区的修改,重新放回工作区
git rm readme.txt  删除版本库中的文件
git checkout -- readme.txt  恢复工作区中的文件

====================================

git remote add origin git@server-name:path/repo-name.git  关联一个远程库(这里,server-name为github.com)
git push -u origin master  关联后,第一次推送master分支的所有内容
git push origin master 此后,每次本地提交后,推送最新修改
git clone git@github.com:USERNAME/repo-name  将远程库克隆到本地

git remote  查看远程库的信息
git remote -v  查看远程库详细信息
git checkout -b dev origin/dev  创建本地dev分支
git pull  从origin/dev抓取最新的提交,在本地合并(从而避免冲突)

注意:如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

=====================================

创建&切换分支:git checkout -b dev  git checkout加上-b参数表示创建并切换,等于这两条命令:
创建分支:git branch dev
切换分支:git checkout dev

查看分支:git branch   查看当前分支
注意:在当前分支修改的不影响原来的分支

合并分支:git merge dev  将dev合并到master上,注意需要先切换到master分支再进行此操作
合并分支2 :git merge --no-ff -m "merge with no-ff" dev   采用--no-ff方式,禁用fast forword

注意:合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

   如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

删除分支:git branch -d dev  删除分支

分支合并图:git log --graph
分支合并图:git log --graph --pretty=oneline --abbrev-commit

=====================================

Bug分支:

保存工作现场:git stash
显示栈内备份:git stash list
恢复现场:git stash apply    恢复后,stash内容并不删除,需要用git stash drop来删除;
恢复现场2:git stash pop  恢复的同时把stash内容也删了:

=====================================

标签:

切换到需要打标签的分支

git tag v1.0  打标签
git tag  查看标签
git tag v0.9 6224937  对指定的commit id打标签
git show v1.0  查看标签信息
git tag -a v0.1 -m "version 0.1 released" 3628164  创建带说明的标签,用-a指定标签名,-m指定说明文字
git tag -s v0.2 -m "signed version 0.2 released" fec145a  通过-s用私钥签名一个标签
git tag -d v0.1  删除标签
git push origin v1.0  推送标签到远程
git push origin --tags  推送全部尚未推送的标签
删除远程标签:1、首先删除本地标签 git tag -d v0.9 
       2、然后git push origin :refs/tags/v0.9

Git学习笔记--Git常用命令的更多相关文章

  1. git学习笔记:常用命令总结

    本文根据廖雪峰的博客,记录下自己的学习笔记.主要记录常用的命令,包括仓库初始化.添加文件.提交修改.新建分支.内容暂存.分支管理.标签管理等内容. git是分布式版本控制系统. 首先是安装,从官网下载 ...

  2. Git-学习笔记(常用命令集合)

    这里引用一下百度百科里Git的内容: Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用 ...

  3. git 学习笔记 Git实践

    网上有很多教程,这里我自己做下整理,省得有时忘记,有道是好记性不如烂博客! 先大概描述下Git的各种命令: git init                     #初始化 git clone   ...

  4. CentOS7学习笔记(四) 常用命令记录

    查看命令的帮助信息 man 命令查看帮助信息 在想要获取帮助信息的命令前面加上man即可,例如查看ls命令的帮助信息 [root@localhost ~]# man ls help 命令查看帮助信息 ...

  5. Git学习笔记 git revert

    我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误. 举个例子,下图是git commit 的历史记录 git revert 命令会通 ...

  6. Git 学习笔记--Git下的冲突解决

    冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是merge 和 patch(应用补丁)时产生冲突. 而rebase就是重新设置基准,然后应用补丁的过程,所以也会冲突. git pull会自动m ...

  7. Git学习笔记 - Git安装

    Git安装(Windows) 从 https://git-for-windows.github.io/ 下载Git,下载完成,双击安装,一路选择默认设置即可. 注意:选择使用git的命令行模式,选择默 ...

  8. Linux学习笔记:常用命令

    个人常用的Linux命令总结(持续更新): 切换目录:cd 列出目录下面的文件:ls 显示当前所在的目录:pwd 操作文件 新建文件:touch file01 查看文件内容:less more cat ...

  9. Linux学习笔记:常用命令grep、iconv、cp、mv、rm

    本篇记录一些近期常用的命令. 一.grep过滤 grep过滤 不包含某些字符串 cat test.txt | grep -v '.jpg' 过滤jpg结尾的图片 cat test.txt | grep ...

随机推荐

  1. Altium Designer 画"差分线"

    如何在 Altium Designer 中快速进行差分对走线1:在原理图中让一对网络前缀相同,后缀分别为_N 和_P,并且加上差分队对指示.    让一对差分网络名称的前缀必须相同,后缀分别为_N 和 ...

  2. 给你讲个笑话,我是创业公司CEO

      文/办公室奇葩说(Office 78)一个在办公室较为正经的八卦号. 前几天你看见朋友圈刷屏的文章<给你讲个笑话:我是做互联网的>. 你心想,写文章的那人是傻逼吗?觉得做互联网就是个笑 ...

  3. iOS 定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等授权检测

    金田 iOS系统版本的不断升级的前提,伴随着用户使用设备的安全性提升,iOS系统对于App需要使用的硬件限制也越来越严格,App处理稍有不妥,轻则造成功能不可用用户还不知道,重则会造成App Cras ...

  4. 【转】Java中 List的遍历

    原文网址:http://blog.csdn.net/player26/article/details/3955906 import java.util.ArrayList; import java.u ...

  5. HDU_2041——走楼梯,递推

    Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?   Input 输入数据首先包含一个整数N,表示测试实例的个数,然 ...

  6. android设置组件所占的比例

    当我们使用linearlayout线性布局,放置三个textview空间,设置android:layout_width属性为wrap_content,并分别设置android:layout_weigh ...

  7. s16_day01

    一.基础 1.编码 ascii-->GB2312-->GB18030-->GBK-->unicode-->UTF8可变长 2.数据类型 int,long,float,co ...

  8. 【更新日志】售后CP更新日志

    记录一下: [售后CP更新日志] ============================================ 更新时间:[-- :] 更新内容: .版本升级,框架升级,框架升级版本3. ...

  9. 使用GCM服务(Google Cloud Messaging)实现Android消息推送

    最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...

  10. POJ2431 Expedition(排序+优先队列)

    思路:先把加油站按升序排列. 在经过加油站时.往优先队列里增加B[i].(每经过一个加油站时,预存储一下油量) 当油箱空时:1.假设队列为空(能够理解成预存储的油量),则无法到达下一个加油站,更无法到 ...