文档章节

git使用的一些小技巧

TinkerS
 TinkerS
发布于 2013/12/16 12:17
字数 1111
阅读 1780
收藏 16
点赞 0
评论 1
git

自己平常使用git记录下来的一些小技巧,有些很实用,有些很普通,分享给大家,会持续补充

1. 使用.gitignore忽略文件

    文件 .gitignore 的格式规范如下:

     • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。       • 可以使用标准的 glob 模式匹配。      • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。      • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。 

2. git rm file:从staged区中移除文件,同时把文件从磁盘上删除
    git rm --cached file:从staged区中移除文件,但文件保留在磁盘上

3. 命令 git rm \*.log:会递归删除当前目录及其子目录下的所有.log文件,如果只是使用git rm *.log,则不会递归子目录(这时使用的是shell的模式匹配处理),git的匹配处理和shell的匹配处理有区别

4. git log --pretty=format:"%h - %an, %ar : %s"
    选项 说明

     %H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串      %T 树对象(tree)的完整哈希字串      %t 树对象的简短哈希字串      %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串 
     %an 作者(author)的名字      %ae 作者的电子邮件地址      %ad 作者修订日期(可以用 -date= 选项定制格式) %ar 作者修订日期,按多久以前的方式显示      %cn 提交者(committer)的名字      %ce 提交者的电子邮件地址      %cd 提交日期      %cr 提交日期,按多久以前的方式显示
     %s 提交说明

5. git push默认不会推送本地标签到远程仓库,要推送使用 git push origin tag name或者使用git push origin --tags一次推送所有标签

6. 使用git stash暂存文件,就是如果本地做了一些修改不想提交,但是又想从服务器pull代码,那么可以先将本地的改动stash一下,就可以使用git pull了,然后可以使用git stash pop将暂存的改动和当前代码合并,更多文档见git help stash;

7. git branch -r:查看远程分支
    git checkout -b local remote:获取远程分支 

8. git fetch不会改变工作空间副本,只是抓取远程快照(即修改.git文件夹的内容)

9. 跟踪一个文件的提交记录: git log -p "filename" 
10. git blame "filename": 显示一个文件每一行的最后一次提交记录

11. git log --stat:显示改变的概要

12. 使用git reset了之后,之前的提交的commit没有了,可以使用git log --all来查看以前的commit,并选择恢复;
13. 也可以使用git reflog查看HEAD历史记录;

14. git修改文件名:git mv -f readme.txt README.txt;
15. git ls-files [--deleted] ;可以使用 git ls-files --deleted | xargs git rm批量提交删除
16. To remove a submodule you need to:
      Delete the relevant line from the .gitmodules file.
      Delete the relevant section from .git/config.
      Run git rm --cached path_to_submodule (no trailing slash).
      Commit the super project.
      Delete the now untracked submodule files.
17. 更新submodule步骤:cd submodule_dir; git checkout master; git pull;
18. git submodule foreach git pull origin master:批量更新全部submodule;
19. 
对于二进制文件的冲突,你肯定不想通过编辑二进制文件来解决冲突,那是不可能完成的事情。你要做的就是:要么选择对方的修改,要么选择自己的修改。你可以用git checkout的--theirs--ours选项。

git pull
git checkout --theirs YOUR_BINARY_FILE
//git checkout --ours YOUR_BINARY_FILE
git add YOUR_BINARY_FILE
git commit -m 'merged with the remote repos.'git push

19. 本地已有分支track远程分支: git branch -u remote/remote_branch local_branch

20. 对repo的所有工程执行同样的git命令: repo forall -c git checkout -b local origin/remote_branch,如果希望在每次执行命令之前打印出当前路径,可以加上-p参数,即 repo forall -p -c ....

21. git checkout -p [branch]: 这个命令可以用来打补丁。这个命令主要用来比较两个分支间的差异内容,并提供交互式的界面来选择进一步的操作。这个命令不仅可以比较两个分支间的差异,还可以比较单个文件的差异哦!

22. 比较两个分支的commits差异: 

git log origin/master..origin/develop --oneline --decorate

23. 

© 著作权归作者所有

共有 人打赏支持
TinkerS
粉丝 8
博文 55
码字总数 12670
作品 0
高级程序员
加载中

评论(1)

seared2008
seared2008
收藏
Gitblit 1.3.1 发布,Java 的 Git 管理工具

Gitblit 1.3.1 增加了可选的页面 Cache-Control 头信息来降低服务器负载(默认关闭),使用 PAMUserServie 实现通过本地 Linux/Unix/MacOSX 服务器进行身份认证,修复了一些小 bug,更新了翻...

oschina ⋅ 2013/07/25 ⋅ 2

phalapi-入门篇1(简单介绍以及环境搭建)

先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 笔者也是在进行接口开发时,寻找一个方便的针对与API开发的框架时,发现了这个框架,经过了短时间的尝试,发现确实...

喵了_个咪 ⋅ 2015/09/21 ⋅ 1

使用Homebrew安装一个Formula的多个不同版本

Homebrew是mac os x系统下一个非常优秀的软件包管理工具,个人认为比macports好用,本文介绍了使用homebrew如何安装一个软件包的多个版本并随意切换。 例如已经使用brew install gradle安装了...

TinkerS ⋅ 2013/12/14 ⋅ 0

Linux shell 中的那些小把戏

原文出处:techbar 译文出处:Linux中国/geekpi 我日常使用Linux shell(Bash),但是我经常忘记一些有用的命令或者shell技巧。是的,我能记住一些命令,但是肯定不会只在特定的任务上使用一次...

techbar ⋅ 2017/11/22 ⋅ 0

SmartGit/Hg 5.0.3 发布

SmartGit/Hg 5.0.3 包含一些小改进,基于令牌的认证,Git-Flow 无需远程,bug 修复等。 SmartGit 是一个 Git 版本控制系统的图形化客户端程序。

oschina ⋅ 2013/12/01 ⋅ 1

PerlDaemon 1.2.1 发布,Perl守护进程框架

PerlDaemon 是一个最小化的Perl语言的 Linux/UNIX 的守护进程编程框架,主要功能: Automatic daemonizing Logging and logrotate support (SIGHUP) Clean shutdown support (SIGTERM) Pidf......

红薯 ⋅ 2011/11/20 ⋅ 0

git使用技巧总结

把平时用到的git的相关技巧总结在此,以备不时之需。 一.git提交代码整个流程 1.git add -u2.git commit #添加信息,保存退出3.git checkout master #切换到主分支4.git pull origin master ...

Jlan ⋅ 2015/09/06 ⋅ 0

Eclipse结合Git

需求:我自己的一些小demo,或者是以后做的一些共用的组件放在git上,方便管理。 1、安装git插件 https://zhidao.baidu.com/question/240671556296812364.html 2、建立本地git仓库 3、配置g...

CurtainRight ⋅ 2016/11/01 ⋅ 0

你未必知道的12个JavaScript技巧

在这篇文章中将给大家分享12个有关于JavaScript的小技巧。这些小技巧可能在你的实际工作中或许能帮助你解决一些问题。 使用操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查...

鱼煎 ⋅ 2016/06/25 ⋅ 1

扒一扒MathType不为人知的技巧

MathType作为一款编辑数学公式的神器,很多人在使用它时只是很简单地使用了一些最基本的模板,很多功能都没有使用。MathType功能比你想象中的大很多,今天我们就来扒一扒MathType那些不为人知...

学术研究软件 ⋅ 2016/04/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 26分钟前 ⋅ 0

数据仓库技术概述(一看就是架构师写的,对我极其有用)

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于...

gulf ⋅ 27分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 29分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 33分钟前 ⋅ 0

vue获取input输入框的数据

用惯了jQuery,突然使用vue感觉很不习惯,有很多不同的地方,感觉是两个不同的思想来写前端的代码。jQuery是使用选择器($)选取DOM对象,对其进行赋值、取值、事件绑定等操作。而Vue则是通过...

王子城 ⋅ 35分钟前 ⋅ 0

竟然这就是面向对象的游戏设计?!

从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句。在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计。本文将概述原型继承和使用 JavaSc...

柳猫 ⋅ 40分钟前 ⋅ 2

git cmd git bash

刚用到了Git,看到windows环境下有两个命令输入窗口 第一个是可视化图形界面,第二个是CMD,第三个是Bash。 Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。所以建议在使用的...

东东笔记 ⋅ 42分钟前 ⋅ 0

分布式系统CAP和Base

1、分布式系统 1.1 简介 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的...

xixingzhe ⋅ 53分钟前 ⋅ 0

查看磁盘占用情况

记一次jenkins构建失败的问题 Build step 'Send build artifacts over SSH' changed build result to UNSTABLE 网上查资料都没明确表明是什么错,回忆之前处理这样的问题。第一时间想到的是不...

ManderSF ⋅ 54分钟前 ⋅ 0

数据库管理提速:SQL解析的探索与应用

前言: SQL解析是一项复杂的技术,一般都是由数据库厂商来掌握,当然也有公司专门提供SQL解析的API。SQL解析与优化是属于编译器范畴,和C语言等其他语言的解析没有本质的区别。其中分为词法分...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部