`
zhb8015
  • 浏览: 397592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

Git教程

阅读更多

一、简介

二、Git教程

三、msysgit教程

 

GitHub初始化:




 
 

*****************************************

二、Git教程

1、Git技巧总结

1.使用“git diff”来折叠多行


用git diff经常会出现很多内容,导致很多内容被遮住了,让人很是苦恼,幸运的是这里有个解决方案。

如果你使用less作为默认的pager,只需要输入-s,就可以保证不会被diff刷屏了。

或者,你也可以使用git config设置pager来达到同样的效果:

为当前项目设置pager:

  1. $ git config core.pager 'less -r'  

再将pager设置的作用域设置为整个项目:

  1. $ git config --global core.pager 'less -r'  

2.设置全局代理


在某些网络环境下,你可能需要为git配置代理,这很简单,只需要一行命令就可以了:

  1. git config --global https.proxy https://user:password@address:port 

3.clone某个特定分支


在某些大型项目中,或者只是图方便,有时候你可能只希望clone某个分支,你可以这样做:

  1. mkdir $BRANCH 
  2. cd $BRANCH 
  3. git init 
  4. git remote add -t $BRANCH -f origin $REMOTE_REPO 
  5. git checkout $BRANCH 

4.比较某个文件和远程分支上的区别


很简单:

  1. git diff localbranch remotebranch filepath 

5.列出版本库中所有已删除的文件


也许你是想将其恢复,因此需要仔细确认某些merge操作,无论如何,列出版本库中所有已删除的文件会非常有帮助。你只需要这样做:

  1. git log --diff-filter=D --summary 

如果你想将其恢复,参照这里

如果你不想知道是哪次commit中删除的,只需要添加一个grep delete。

  1. git log --diff-filter=D --summary | grep delete 

6.在版本库所有版本中搜寻一条字符串


往往你想要查找某段代码、某个函数、一个常量、一个文件,但是却找不到了。它被删除了,什么时候删除的?这个小技巧能搜索整个版本库中git diff信息,可能会花些时间,但是非常有用:

  1. git rev-list --all | ( 
  2.     while read revision; do 
  3.         git grep -F 'Your search string' $revision 
  4.     done 

7.应用另外一个(不相关的)本地版本库中的patch


从另一个版本库中cherry-pick一条提交记录,首先需要将那个版本库作为一个远程版本库添加进来,并fetch其变化,然后cherry-pick其提交记录。

如果你追求速度,也可以使用这个未经优化的命令:

  1. git --git-dir=../some_other_repo/.git format-patch -k -1 --stdout <commit SHA>| git am -3 -k 

8.从新的主干中分出一个新分支


有时候你会在better_brach上工作一段时间,并准备将其设为新的master,你会怎么做?

这里是Stack Overflow上提供的常规解决方案:

1.切换到better_brach分支:

  1. git checkout better_branch 

2.保留better_branch分支全部内容,但是记录合并:

  1. git merge --strategy=ours master 

3.切回mater

  1. git checkout master 

4.快速合并

  1. git merge better_branch 

5.如果你想让合并步骤变得更清晰,可以添加commit信息。只需要修改下第二步:

  1. git merge --strategy=ours --no-commit master 
  2. git commit # Here add your custom message to the commit template 

9.向分支提交一个初始的空commit,保证完全复位


这样会重写历史记录,所以只能在未和任何人分享前做,否则将可能把同事者的文件破坏。

1.创建一个新的空分支,例如:newroot

  1. git checkout --orphan newroot 
  2. git rm --cached -r . 
  3. git clean -f -d 

2.创建空的commit

  1. git commit --allow-empty -m '[empty] initial commit' 

3.重新发送分支的全部内容

  1. git rebase --onto newroot --root master 

4.删除临时分支newroot

  1. git branch -d newroot 

现在master就已经包含了一个空的root commit了。

10.清空一个分支来做些不同的事


有时候你会想要从某个分支重新开始,或者打算保留一些逻辑上和主干相关但是跟踪另一个跨职能方面的代码,就像GitHub项目的gh-pages。

但如果你只想重新开始某个分支,清空所有历史记录呢?

1.检出(checkout)一个分支:

  1. git checkout -b branch_to_zero 

2.跟上条一样,先建立增加一个初始的空commit,之后就可以通过重新设置来清空一个分支。

3.使用hard重置分支到刚刚创建的初始commit:

  1. git reset --hard initial_commit 

11.如何修改一个特定的commit?


当你想在推送前重做你最后的commit时,可以使用修改命令(git commit --amend)。如果你想修改的不是最后一个commit呢?

这种情况下,你可以使用git rebase,例如,你想要修改bbc643cd commit,运行下面的命令:

  1. $git rebase bbc643cd^ --interactive  

在默认的编辑器中选择并修改你期望修改的,然后保存修改并输入:

  1. $ git add <filepattern>  

现在你就可以使用

  1. $git commit --amend 

来修改commit,之后使用

  1. $ git rebase --continue  

返回之前最新的commit。

12.如何隐藏多个已修改文件中一个?


git stash --keep-index命令可以用来隐藏上次commit中没有add的东西,之后add想要提交的文件并运行相应命令就可以了。

按照下面的提示,你可以把一条老的commit提交到多个变更集中:

互动地rebase最后一条好的commit:

  1. git rebase -i last_good_commit 

将某些变化标记为edit:

  1. git reset HEAD^ 
  2. git add file1 file2 file3 

添加相应的文件:

  1. git add file1 file2 file3 

因此之前没有添加的文件:

  1. git stash --keep-index 

别忘了收尾:

  1. git commit 
  2. git stash pop 

有必要的话,重复第二步之后的步骤:

  1. git rebase --continue 

 

 

 

 

git 连接github

http://www.congci.com/item/msysgit-windows-git

 

Git SSH Key 生成步骤

http://blog.csdn.net/hustpzb/article/details/8230454

 

git使用

http://jingyan.baidu.com/article/e75aca85bb2720142edac61d.html

problems:

Error: Permission denied (publickey)

https://help.github.com/articles/error-permission-denied-publickey

 

Ggit教程:

http://blog.csdn.net/luckarecs/article/details/7427605

 

  • 大小: 26.1 KB
分享到:
评论

相关推荐

    Git教程by廖雪峰.pdf

    史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎...

    Keil配置Git教程

    标题“Keil配置Git教程”指明了本文主要讨论的内容是关于如何在Keil开发环境中配置Git以进行软件项目的版本控制管理。Keil是一款常用于嵌入式系统开发的集成开发环境(IDE),而Git则是一种流行的分布式版本控制系统,...

    Git教程By廖雪峰 高清完整 完整目录PDF版.pdf

    大师级别的 缪雪峰的git教程 Git简介 Git是什么? Git是⺫⽬目前世界上最先进的分布式版本控制系统(没有之⼀一)。 Git有什么特点?简单来说就是:⾼高端⼤大⽓气上档次! 那什么是版本控制系统? 如果你⽤用...

    Git教程By廖雪峰.pdf

    史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离...

    Git教程-廖雪峰-打印版.pdf

    Git教程是IT行业中非常重要的一个学习资源,尤其对于软件开发者来说,掌握Git是必不可少的技能。廖雪峰的Git教程以其简洁明了、易于理解的特点,深受广大编程者的喜爱。这个压缩包包含的是经过加工处理的PDF版本,...

    git教程,很齐全的教程

    git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 git教程,很齐全的教程 ...

    史上最浅显易懂的Git教程_Git教程2.pdf

    史上最浅显易懂的Git教程! 史上最浅显易懂的Git教程! 史上最浅显易懂的Git教程! 读过好几遍,非常赞,很适合初学者

    无涯教程(LearnFk)-Git教程离线版.pdf

    Git是一个强大的开源分布式版本控制系统,由Linus Torvalds在2005年为了改进Linux...在无涯教程(LearnFK)提供的Git教程中,无论是初学者还是专业人士,都能找到适合自己的学习资料,深入理解和掌握Git的各项功能。

    Git教程.md

    Git教程.md

    博主的个人git教程.zip

    博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人git教程.zip博主的个人...

    Git教程.pdf

    史上最浅显易懂的Git教程! write By 廖雪峰,本书为高清PDF版

    git教程史上最浅显易懂的Git教程

    史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地...

    git 教程笔记 git 教程笔记 git 教程笔记 git 教程笔记

    git 教程笔记 git 教程笔记 git 教程笔记

    廖雪峰Git教程PDF版

    廖雪峰Git教程PDF版-20170215

    Git教程By廖雪峰

    史上最浅显易懂的Git教程!为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎...

    Git教程Git-it.zip

    Git-it 是一位 GitHub 女员工编写的 Git 教程,可以一步一步的教你学习 Git,提供繁体中文版。安装 Git-it 就可以离线查看所有资料。Git-it 挑战Get Git 安装和配置 GitRepository 创建本地仓库Commit to it 检测...

Global site tag (gtag.js) - Google Analytics