git使用 Ubuntu 14.04

安装

apt-get install git

版本查看

git --version
git version 1.9.

配置(全局变量,默认值。可在具体仓库中设置改仓库使用的配置)

git config --global user.email "Zhang.Eamon@hotmail.com"
git config --global user.name "EamonZhang"
cd ~
cat .gitconfig
[user]
name = EamonZhang
email = Zhang.Eamon@hotmail.com

初始化仓库

git init

添加到暂存区

git add <filename1>,<filename2>

提交到暂存区

git commit -m "....messages...."

查看仓库当前的状态

git status

查看提交日志

git log 

查看提交日志,简版

git log --pretty=oneline

回退到上一版

git reset --hard HEAD^

查看操作日志,版本日交、回退

git reflog

切换到指定版本 

git reset --hard <commit-id>

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

查看工作区和版本库里面最新版本的区别

git diff HAED -- <file>

文件回到最近一次git commit或git add时的状态(与暂存区同步)

git reset -- <file>

回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本(与工作区同步)

git reset HEAD <file>

删除文件

git rm <file>
git commit -m " delete file .." git checkout -- <file>

git checkout主要有三个作用:

第一个就是切换分支。例如你从远程仓库clone下来所有的源代码,你git branch一下会看到你通常是在master,如果你想切换到某一个分支上呢?git checkout <branchname>
第二个就是放弃对某个文件的修改。例如你想放弃对某个文件Hello.cpp的修改,git checkout -- <Hello.cpp>
第三个就是新建一个分支,git checkout <-b> <branchname>,不加-b的话只新建不切换到新的分支上,加-b新建并切换到该分支上

git reset主要是取消上一次的操作,具体用法有很多,说两个:
第一个取消merge,git reset --hard ORIG_HEAD,这样会退回到merge前的代码。
第二个就是取消commit,git eset HEAD~<num> <-soft/-hard>,取消上num次的commit
第三个是将文件从stage(追踪的库)中移除,git reset HEAD <filename>

远程连接

git remote add origin git@github.com:michaelliao/learngit.git

首次推送

git push -u origin master

推送

git push origin master

克隆远程到本地

git clone git@****

拉取

git pull 

信息查看

git remote
git remote -v

首先,我们创建dev分支,然后切换到dev分支

git checkout -b dev

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
然后,用git branch命令查看当前分支:

$ git branch
* dev
master

把dev分支的工作成果合并到master分支上:

git merge dev

查看分支:git branch

创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
用带参数的git log也可以看到分支的合并情况
git log --graph --pretty=oneline --abbrev-commit
git log --graph命令可以看到分支合并图
--no-ff参数,表示禁用Fast forward
git merge --no-ff -m "merge with no-ff" dev
丢弃一个没有被合并过的分支,强行删除。
git branch -D <name>
本地分支和远程分支的链接关系没有创建
git branch --set-upstream-to dev origin/dev

保存工作现场
git status
git stash list
恢复工作现场有两个办法:

1 git stash apply
git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
2 git stash pop
git stash pop,恢复的同时把stash内容也删了

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

$ git stash apply stash@{0}

标签管理
对 6224937 提交打标签
git tag v0.9 6224937
查看所有标签
git tag
查看标签信息
git show v0.9
标签加说明信息
git tag -a v0.1 -m "version 0.1 released" 3628164
删除标签
git tag -d v0.1
标签推送到远程
git push origin v1.0
所有标签推送的到远程
git push origin --tags

官方网址 : https://git-scm.com/book/zh/v2

git 使用整理的更多相关文章

  1. Git 初学者使用指南及Git 资源整理

    Git 资源整理 Git is a free and open source distributed version control system designed to handle everyth ...

  2. git相关整理

    title: git相关整理 toc: false date: 2018-09-24 20:42:55 git merge 和 git merge --no--ff有什么区别? git merge命令 ...

  3. Git 常见问题整理

    在学习git的过程中,遇到如下问题,特整理如下: 1 error:src refspec master does not match any 问题产生 a git服务器使用如下命令新建一个项目 $ c ...

  4. 常用git命令整理

    花了一点时间来熟悉和整理git常用命令. 推荐的git学习资料:1.搜“Git Community Book 中文版.pdf”,git社区书,内容全面且简明扼要,第一推荐2.搜“Git权威指南.pdf ...

  5. Git使用整理

    [本文由水木桶首发于博客园,原文地址:https://www.cnblogs.com/shuimutong/p/11404664.html,未接允许,严禁转载] 背景 很久之前使用的是svn,直接在E ...

  6. 常见 git 需求整理(持续更新中)

    首发于 语雀文档 突然感觉自己对 git 还是挺熟悉的,因为团队里新来的七八号应届生来问我 git 问题,基本没有答不上的情况,但为了能更好地对知识进行整理,还是记录一下为好. (希望能)持续更新.. ...

  7. Git 笔记整理3

    1,git clone某一个分支 git clone -b <branch> <remote_repo> 2,.git 文件太大 :clone的时候,可以指定深度,如下,为1即 ...

  8. Git笔记 整理2

    补充: 1,如何只克隆git仓库中的一个分支? git clone -b <branch> <remote_repo> eg:  git clone -b vivien_dev ...

  9. Git命令整理

    说在前面: 刚开始在实习时接触git,是用git可视化工具,但是仅限于克隆库.切换分支.抓取和推送,对于其中的原理不甚了解.看了廖雪峰老师Git教程,获益颇丰.特别要感谢我工作中的同事,是他强烈建议我 ...

  10. git 命令整理

    记录一些git 命令,以便自己以后查阅 基本命令   1.git add (保存工作区的变动到暂存区) git add . 和git add -A把整个工作区添加到暂存区 2.git commit ( ...

随机推荐

  1. 【原创】对Java的synchronized关键字的学习

    在Java中,每一个线程都有一个内部锁.当我们使用synchronized关键字时,就是利用这个内部锁来实现线程对某个对象的锁定控制. 那么,如果某个对象中有两个方法,方法一和方法二都使用了synch ...

  2. Linux服务器导入导出SVN项目

    导出项目: # svnadmin dump /var/svn/pro1 > /mydata/pro1.backup 导入项目: 新建项目仓库: # svnadmin create /var/sv ...

  3. L2-010. 排座位

    L2-010. 排座位 题目链接:https://www.patest.cn/contests/gplt/L2-010 并查集 相关题目:L2-007. 家庭房产,L3-003. 社交集群 下午打的时 ...

  4. 分布式日志收集系统Apache Flume的设计详细介绍

    问题导读: 1.Flume传输的数据的基本单位是是什么? 2.Event是什么,流向是怎么样的? 3.Source:完成对日志数据的收集,分成什么打入Channel中? 4.Channel的作用是什么 ...

  5. linux设置环境变量

    设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量,对所有用 ...

  6. Babel 相关资料

    Babel online editor Babel Plugin Handbook babeljs usage options

  7. jQuery 学习小结

    1,jQuery是一个简单的JavaScript库,提供了一系列辅助函数:以下简称jq; 使用jq时,通常将jq代码放到head部分的事件处理方法中,也可以将其单独写出 .js 文件,引入:但无论哪种 ...

  8. Oberon程序设计语言简介

    Oberon奥伯龙是一种通用编程语言,也是一种同名操作系统(由Oberon语言开发,且参考过贝尔实验室的新一代网络操作系统Plan9),是由原Pascal程序设计语言的发明者Niklaus Wirth ...

  9. Vultr优惠码20美元享受20GB SSD和2T流量

    美国vps主机商vultr最新优惠码:20FOR30,只限新注册用户,点击注册链接,进入后台Billing,找到Gift code,输入20FOR30,点击apply,就能免费获得20美元的账户余额. ...

  10. 怎样正确设置remote_addr和x_forwarded_for

    怎样正确设置remote_addr和x_forwarded_for 2013-04-20 做网站时经常会用到remote_addr和x_forwarded_for这两个头信息来获取客户端的IP,然而当 ...