查看帮助,要装git-doc,另外推荐git的图形客户端gitg,比gitk好看多了,用apt-get install就可
 
HEAD是当前工作版本的指针
 
--global保存的是当前用户的配置,配置文件保存在~/.gitconfig
 --system是系统中所有用户,配置文件一般在/etc/gitconfig
什么都不加就是当前目录下项目的配置文件,在项目的.git文件夹中
 git config --list 可以查看所有配置信息,有重名的因为有不同的配置文件,实际会采用最后一个
基本设置 
git config --global user.name yisen 
git config --global user.name yisen.n@gmail.com 
git config --global core.editor vim

给git着色
git config --global color.ui true 这样会好看一些

自动完成脚本
git默认要输入全命令,而且还不能像svn那样st,ci,co,有点不方便
其实在git的源代码文件夹中,contrib/completion 目录下的 git-completion.bash脚本可以实现自动完成
把它复制到~/.git-completion.bash,然后source之,并且把命令加到启动脚本中echo "source ~/.git-completion.bash >> ~/.bashrc"
现在我们就可以用我们习惯的<tab><tab>来自动补全命令了
 
Git 命令别名
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.logg "log --pretty=format:'%h - %an -%ad -%s'"
 
git log -p 查看每个版本的差异
git log a..b 查看a版本到b版本之间的log
 
git reflog 可以查看每个改动
git reset HEAD~1 撤销最近的一次改动
恢复数据 用reflog查看已经没了的提交的SHA值,然后直接git branch recover-branch ab1afef(SHA值前几位)
 
git checkout -b newbranch = git branch newbranch + git checkout newbranch 
git checkout -b newbranch develop = git checkout develop + git checkout -b newbranch
 
永远不要rebase那些已经推送到公共仓库的更新。
如果你遵循这条金科玉律,就不会出差错。否则,人民群众会仇恨你,你的朋友和家人也会嘲笑你,唾弃你。
如果把rebase当成一种在推送之前清理提交历史的手段,而且仅仅rebase那些永远不会公开的 commit,那就不会有任何问题。如果rebase那些已经公开的 commit,而与此同时其他人已经用这些 commit 进行了后续的开发工作,那你有得麻烦了。
 
忽略添加某些文件 
习惯git add .来增加所有更改,如果有不想被默认添加进仓库的,可以在项目目录下新建一个.gitignore文件,把文件名输进去,空行分隔,可以用*号。
 
局域网内共享仓库
无SSH的:
本机上用git clone --bare xxx xxx.git 克隆一个纯仓库
xxx.git放到服务器上一个项目组都能访问到的共享目录下,比如NFS,假设/mnt/git/xxx.git 
对方先mount到自己的/mnt/git,然后 git clone /mnt/git/xxx.git 
添加远程主机: git remote add origin file://192.168.x.x/opt/xxx.git
获取更新: git fetch origin 这时得到一个origin/master分支的指针,不能修改, 
可以合并到自己的主干 git co master, git merge origin/master,或者新建一个分支来工作,git checkout -b new_br origin/master
获取更新并合并到当前分支的命令可以合并为: git pull origin master  (master:master) 
 

改变最后一次提交
修改了文件后,git status看到有更改,git checkout -- . 可以撤销这些修改
git commit --amend可以重新提交一次,以便更改说明 
也可以先add或者rm一下后再使用上面的命令,可以修改上次提交。因为会更改sha值,所以不要在push之后再修改

取回前版本
git reset --hard/soft/mixed xxxxx, 取消所有修改,保留所有修改,默认,清空文件状态
git reflog 查看所有操作log

暂存工作
git stash 可以把你当前工作的杂乱无张的状态先暂存起来,然后你就可以切换到别的分支去工作
git stash list 可以看当前的暂存列表后
git stash apply 应用最新的一个暂存,git stash drop stash@{0}来删掉暂存

格式化的困扰
你可能会遇到行尾结束符问题。这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。
git config --global core.autocrlf input 签出时不转换,提交是把CRLF转换成LF
git config --global core.autocrlf true 如果服务器是linux,工作在windows,提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。 
服务器跟工作都在windows上,设成false取消此功能

以上引用:http://my.oschina.net/yisenn/blog/23646

Git的一些东西(后续补充)的更多相关文章

  1. git语句(后续补充)

    如果你是windows用户,需要下载一个git应用程序,一路点就行,没有什么需要注意的地方 安装完成后在任一文件夹内右键都有显示,单击git bash here即可 简易的命令行入门教程: Git 全 ...

  2. Git 简易使用指南及补充

    Git最简易的使用指南 助你开始使用 git 的简易指南,木有高深内容,;) 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹, ...

  3. C#委托与事件--后续补充

    委托.事件补充 针对昨天文章 委托:让方法可以跟简单对象一样作为参数进行传递,也就是将方法作为参数进行封装. 方法:本质就是代码段 其实也好理解,目的就是为了封装,多态,既然简单对象如int i可以做 ...

  4. [Git] 024 log 命令的补充

    0. 回顾 [Git] 009 逆转未来 的 "1" 画张导图 其实 --oneline 前有个"关键字参数" "--pretty" --o ...

  5. [Git] 019 merge 命令的补充

    回顾:[Git] 017 加一条分支,享双倍快乐 的 "2.3" 1. "Fast-forward" "Git" 在合并分支时会尽可能地使用 ...

  6. git零基础【慢慢补充】

    git branch dev   //创建新分支 git checkout dev   //切换到新分支 git add .  //把当前修改加到暂存区 git commit -m "代码描 ...

  7. [Git] 026 config 命令的补充

    少废话,上例子 1. 让命令更醒目 $ git config --global color.ui true 2. 偷懒 $ git config --global alias.st status 使用 ...

  8. [Git] 012 rm 命令的补充

    0. 前言 [Git] 007 三棵树以及向本地仓库加入第一个文件 的 "2.5" 有提及 git rm --cached <file> 1. 介绍 git rm &l ...

  9. 浅谈C++之冒泡排序、希尔排序、快速排序、插入排序、堆排序、基数排序性能对比分析之后续补充说明(有图有真相)

    如果你觉得我的有些话有点唐突,你不理解可以想看看前一篇<C++之冒泡排序.希尔排序.快速排序.插入排序.堆排序.基数排序性能对比分析>. 这几天闲着没事就写了一篇<C++之冒泡排序. ...

随机推荐

  1. maven项目中的pom.xml

    需要配置的内容 1.配置头(自动生成) 2.maven项目的坐标(自动生成) <modelVersion>4.0.0</modelVersion> <groupId> ...

  2. 单臂路由实现VLAN间通信

    实验要求:利用路由器完成同vlan能通信,不同vlan也能通信 拓扑如下: 涉及内容有: 1.VTP的创建和配置 2.VLAN的创建和划分 3.路由器的单臂路由配置 配置如下: route1 enab ...

  3. ___security_cookie机制

    .text:00411500 ; int __cdecl wmainCRTStartup().text:00411500 _wmainCRTStartup proc near             ...

  4. 举例说明MySQL中的事务

    一.场景导入 现在有一张仓库表,仓库表中记录了每一个物品的数量,还有一张用户表,用户购买产品,仓库表的产品数量减少,而用户拥有产品的数量增加. 但是如果仓库中的产品数量不足时怎么处理? 例子: #仓库 ...

  5. jquery使用ajax提交form表单

    $.ajax({ type: jqform.attr('method'), // 提交方式 get/post url: jqform.attr('action'), // 需要提交的 url data ...

  6. 牛客国庆集训派对Day4 J-寻找复读机

    链接:https://www.nowcoder.com/acm/contest/204/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...

  7. django ---forms组件

    forms组件 本文目录 1 校验字段功能 2 渲染标签功能 3 渲染错误信息功能 4 组件的参数配置 5 局部钩子 6 全局钩子 回到目录 1 校验字段功能 针对一个实例:注册用户讲解. 模型:mo ...

  8. 计算x

    如果x的x次幂结果为10(参见[图1.png]),你能计算出x的近似值吗? 显然,这个值是介于2和3之间的一个数字. 请把x的值计算到小数后6位(四舍五入),并填写这个小数值. 注意:只填写一个小数, ...

  9. mvc core2.1 Identity.EntityFramework Core 注册 (二)

    Startup.cs-> Configure app.UseAuthentication(); //启动验证 Controllers->AccountController.cs 新建 us ...

  10. C++学习(二十五)(C语言部分)之 结构体2

    基本概述: int double char; 定义一个学生类型 int Student 姓名 性别 年龄 简单地说 结构体是一个可以包含不同类型的结构,他是一个自定义的类型. struct 结构体标识 ...