`
shuminghuang
  • 浏览: 52397 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Git必知必会之进阶

    博客分类:
  • git
 
阅读更多

上篇讲到Git必知必会的日常命令,本篇继续介绍Git用法,不常用,却非常重要。包括:

 

  • 配置git
  • git remote
  • git hooks
  • git log
  • git 子模块

 

 

配置Git

 

配置文件
配置可以通过命令行进行(git config),也可能直接修改配置文件。可以在三个地方找到配置文件:仓库目录、用户目录、全局目录,分别代表不同的影响范围。 仓库目录即在仓库的.git目录下的config文件中;用户目录在%user_home%/.git/.gitconfig文件中;全局目录位于/etc/gitconfig(Windows用户在%program files%/git/etc/gitconfig文件中。

 

通常需要配置的有这些:

 

  • 用户名密码
  • Diff tool
  • Merge tool
  • 别名

 

建议以命令行进行配置,避免直接修改文件导致的格式问题。

 

设置用户名

git中需要设置两个值:一个用户名name和一个email

 

 

git config --global user.name "john doe"
git config --global user.email "john.doe@iteye.com"

 

 其中 --global表示该配置为对当前操作系统用户生效,如果不加该参数,则表示在当前仓库的配置生效。

 

 

 

取消设置

如果不小心输错的配置的值,可以通过git config --unset来取消。

比如:

 

git config --global  --unset user.name

表示将刚才设置的用户名取消掉。

 

设置Diff tool

上篇讲到git diff可以进行两个文件的比较,如果觉得命令行输出不是很方便,可以用git difftool进行图形界面的比较。

这时需要配置diff tool。

difftool命令跟diff命令用法几乎一致,除了可以指定用来比较的工具的名称。可用的difftool包括:

araxis, bc3, diffuse, emerge, ecmerge, gvimdiff, kdiff3, kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff。

本人使用过kdiff3和meld,相比更喜欢meld的三栏设计。

第一次运行:

 

 

git difftool --tool meld d234534 ce34565

 

之后系统会在配置文件中增加:

 

[diff]
    tool=meld
[difftool "meld]
    external = "path/to/meld/install/"

 

其中external表示meld安装的目录。

Windows上可以用p4merge,用法类似。

 

配置merge tool

配置mergetool 与difftool十分类似,可用的选项包括:

araxis, bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3, meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff

 

配置别名

git中的好多命令格式并不规范,另外又有些经常执行参数又特别多的命令使用起来并不方便,比如git log,想要输出类似svn格式的log (verionNumber user date message),则需要输入这样的命令:

 

 

git log --pretty=format:"%h %an %ct %m"
 

其中%h代表版本号(git中的版本号为hash值),%an为author name, %ct为create time,%m为message。

可以看出来,很不方便,也不容易记忆。这时可以通过git alias配置git的别名:

 

 

git config --global alias.history "log --pretty=format:'%h %an %ct %m'"

 以后直接输入git history即可输出类似svn格式的log记录。

 

 

git remote

上篇讲到git从指定url克隆repository,本篇讲如何将本地的修改同步到指定的仓库,或从指定的仓库更新代码。

git是分布式的本版控制系统,可以离线完成几乎所有的版本操作,但是实际项目中需要一个中心仓库来同步团队成员的代码成功并统一发布。在svn中这个中心仓库就是svn server,而在git中则没有强制要求,可以在任意两台git仓库中进行同步,但实践下来的情况通常是所有团队成员向唯一一个指定的中心仓库进行同步,作用类似于svn的server。

 

通常通过git clone创建的仓库默认已经有一个指向被克隆仓库的url了(以后的push或pull都通过这个url来建立联系),例如:

 

 

git clone https://github.com/jquery/jquery.git
git remote

输出Origin,通过git remote -v 可以查看这个remote对应的url。

也可以通过git remote set-url 设置该remote的url,也可以通过git remote add 为项目添加新的远程连接。

 

git hook

 

 

 

分享到:
评论

相关推荐

    git最全笔记整理,git入门必备

    ### Git 最全笔记整理——Git 入门必备 #### 一、Git 是什么? Git 是一种分布式版本控制系统,主要用于跟踪计算机文件的更改,并协调多个用户之间的协作。...随着实践经验的积累,你会逐渐成为一名 Git 高手。

    《玩转Git三剑客》.zip

    Git是目前最流行的分布式版本控制系统,被广泛应用于软件开发和协作环境中,对于强化学习这样的技术领域,掌握Git是必不可少的技能之一。 Git的核心概念包括仓库(Repository)、提交(Commit)、分支(Branch)、...

    蒋鑫Git权威指南带书签高清完整版

    4. 分支管理:Git的分支系统是其强大之处。`git branch`用于创建和管理分支,`git merge`进行分支合并,`git rebase`可以将一个分支的变更应用到另一个分支上,使得历史更简洁。 5. 远程仓库:通过`git clone`可以...

    obsidian-git 插件

    3. 解决冲突:在多人协作时可能会遇到冲突,学会使用 Git 的冲突解决机制是必备技能。 4. 自定义工作流:根据个人或团队需求,定制合适的 Git 工作流,如 GitFlow 或 GitHub Flow。 总结来说,Obsidian Git 插件是...

    GIT软件安装和使用说明书

    Git是一款分布式版本控制系统,它使得...总之,掌握Git的使用是现代软件开发者的必备技能之一。通过这个压缩包提供的资源,你将能够轻松入门并逐渐精通Git,从而提升你的版本控制能力,更好地参与到项目开发中去。

    必知必会3

    【标题】:“必知必会3”通常是指在IT领域中,那些对于专业人士或学习者来说至关重要的基础知识或技能集合。这些知识涵盖了编程语言、操作系统、网络技术、数据库管理、软件工程等多个方面,旨在帮助读者建立坚实的...

    Git中文手册

    ### Git中文手册知识点详解 #### 一、Git基础原理及使用方法 ...无论是个人项目还是大型团队合作,熟练掌握Git的基本操作和进阶技巧都是必不可少的。通过本文的介绍,希望能帮助读者更好地理解和使用Git。

    Git常见使用命令参考

    下面是Git常见使用命令参考,涵盖了Git的基本使用方法和进阶使用技巧。 Git初始设置 在使用Git之前,需要进行初始设置,包括设置用户名和电子邮件地址。使用以下命令可以设置用户名和电子邮件地址: git config -...

    Git权威指南_git_

    除了上述基础操作,Git还有许多进阶功能,如rebasing(衍合)、cherry-picking(挑拣)、submodules(子模块)等,它们可以帮助你更精细地控制代码的历史和结构。《Git权威指南》这本书将详细介绍这些内容,并提供...

    最好的git中文教程.pdf

    ### 最好的Git中文教程知识点概览 #### 一、Git简介与重要性 - **Git定义**:Git是一种分布式版本控制系统,由Linus Torvalds于2005年...无论是对于个人开发者还是大型团队来说,熟练掌握Git都是必不可少的技能之一。

    git学习资料大全

    - **解决冲突**: 当多人修改同一部分代码时,Git会提示冲突,需要手动解决并再次提交。 **4. Git进阶操作** - **重置提交**: `git reset` - 可以撤销最近的提交,谨慎操作,避免丢失工作。 - **交互式重置**: `git...

    progit_v2.1.55帮助文档_git自学手册_

    3. **分支管理**:Git的分支机制是其核心优势之一。`git branch`用于创建、查看和切换分支,`git merge`用于合并分支,实现开发和主分支的同步。 4. **远程操作**:`git remote`用于管理和查看远程仓库信息,`git ...

    我的笔记叽叽叽叽叽叽叽

    这个PDF文档“git必知必会的内容”涵盖了Git的关键知识点,可能是按照以下结构编排的: 1. Git简介:解释Git的基本概念,如版本控制、工作流模型,以及Git相较于其他版本控制系统的优点。 2. 安装与配置:介绍在...

    Pragmatic Guide to Git

    ### 实用Git指南知识点...《实用Git指南》是一本非常适合初学者入门以及进阶学习Git的专业书籍。它不仅涵盖了Git的基本操作,还深入探讨了许多高级特性和实用技巧。无论是个人开发者还是企业团队,都能从中获益良多。

    Jmeter进阶必看!jmeter集成Jenkins

    添加Git的bin目录到PATH环境变量,以便命令行可以执行Git命令。 7. **GitHub设置**: 创建GitHub账号,以便在Jenkins中拉取和推送代码。创建一个新的组织或者个人仓库,用于存放JMeter的测试脚本和结果。 接下来...

    Git命令大全PDF文档

    在软件开发过程中,版本控制工具是必不可少的一部分,而Git作为其中的佼佼者,被广泛应用于个人项目到大型企业级项目的版本管理之中。本篇将根据提供的内容,深入解析Git的基础与进阶命令,帮助读者更好地理解和运用...

    git+GitHub笔记总结1

    - **从 Git 中删除文件**:`git rm` 会将文件从仓库中移除。 - **列出文件**:使用 `ls` 命令查看当前目录下的文件。 - **查看用户信息**:`git config --list` 显示 Git 配置信息。 - **克隆仓库**:`git clone...

    Git使用教程

    ### Git使用教程知识点详解 #### 一、Git简介与...Git作为一种强大的版本控制工具,对于软件开发人员来说是必不可少的技能之一。希望您能够通过本教程迅速成长为一名熟练的Git用户,并在未来的工作中发挥重要作用。

    Web前端入门和进阶学习笔记超详细的前端学习图文教程

    总的来说,这份"Web前端入门和进阶学习笔记超详细的前端学习图文教程"会带你走过从基础到高级的整个前端开发旅程,让你具备成为一名Web全栈工程师所需的知识和技能。通过系统学习并实践,你可以掌握构建现代Web应用...

Global site tag (gtag.js) - Google Analytics