Git的使用技巧:
安装Git
Linux - 打开控制台,然后通过包管理安装,在Ubuntu上命令是:
1
| sudo apt-get install git-all
|
Windows - 推荐使用git for
windows,它包括了图形工具以及命令行模拟器。
OS X - 最简单的方式是使用homebrew安装,命令行执行
如果你是在是先用图形工具的话,那么推荐你使用Github desktop,Sourcetree。但我还是推荐你使用命令行,下面的内容就都是命令行的。
配置Git
安装完git,首要任务是配置我们的信息,最重要的是用户名及邮箱,打开终端,执行以下命令。
1 2
| $ git config --global user.name "My Name" $ git config --global user.email myEmail@example.com
|
配置好这两项,用户就能知道谁做了什么,并且一切都更有组织性了不是吗?
Git SSH Key
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Linux $ ssh-keygen -t rsa -C "mail@gmail.com" $ eval "$(ssh-agent -s)" $ ssh-agent -s $ ssh-add ~/.ssh/id_rsa $ vim ~/.ssh/id_rsa.pub $ ssh -T git@github.com
|
创建一个新仓库 - git init
git 会把所有文件以及历史记录保存在你的项目中,创建一个新的仓库,首先要去到项目路径,执行 git init。然后git会创建一个隐藏的文件夹.git,所有的信息都储存在其中。
在桌面创建一个联系文件夹 git_exercise, 打开终端:
1 2
| $ cd Desktop/git_exercise/ $ git init
|
OK,现在项目还什么都没有,新建一个 hello.txt 文件试试~
Git指令速查表
创建
复制一个已创建的仓库:
1
| $ git clone ssh://user@domain.com/repo.git
|
创建一个新的本地仓库:
本地修改
显示工作路径下已修改的文件
显示与上次提交版本文件的不同
把当前所有修改添加到下次提交中
把对某个文件的修改添加到下次提交中
提交本地的所有修改
提交之前已标记的变化
附加消息提交
1
| $ git commit -m 'message here'
|
提交,并将提交时间设置为之前的某个日期:
1
| $ git commit --date="`date --date='n day ago'`" -am "Commit Message"
|
修改上次提交请勿修改已发布的提交记录!
把当前分支中未提交的修改移动到其他分支
1 2 3 4
| git stash git checkout branch2 git stash pop 搜索
|
从当前目录的所有文件中查找文本内容
在某一版本中搜索文本
提交历史
从最新提交开始,显示所有的提交记录(显示hash, 作者信息,提交的标题和时间)
显示所有提交(仅显示提交的hash和message)
显示某个用户的所有提交
1
| $ git log --author="username"
|
查看该文件每次提交记录
显示某个文件的所有修改
查看最近两次详细修改内容的diff
查看提交统计信息
谁,在什么时间,修改了文件的什么内容
分支与标签
列出所有的分支
切换分支
创建并切换到新分支:
1
| $ git checkout -b <branch>
|
基于当前分支创建新分支
1
| $ git branch <new-branch>
|
基于远程分支创建新的可追溯的分支
1
| $ git branch --track <new-branch> <remote-branch>
|
删除本地分支:
1
| $ git branch -d <branch>
|
给当前版本打标签
更新与发布
列出当前配置的远程端
显示远程端的信息
1
| $ git remote show <remote>
|
添加新的远程端
1
| $ git remote add <remote> <url>
|
下载远程端版本,但不合并到HEAD中
下载远程端版本,并自动与HEAD版本合并
1
| $ git remote pull <remote> <url>
|
将远程端版本合并到本地版本中
1
| $ git pull origin master
|
将本地版本发布到远程端
1
| $ git push remote <remote> <branch>
|
删除远程端分支
1 2 3
| $ git push <remote> :<branch> (since Git v1.5.0) 或 git push <remote> --delete <branch> (since Git v1.7.0)
|
发布标签:
合并与重置
将分支合并到当前HEAD中
将当前HEAD版本重置到分支中:请勿重置已发布的提交!
退出重置:
解决冲突后继续重置
在编辑器中手动解决冲突后,标记文件为已解决冲突
1 2
| $ git add <resolved-file> $ git rm <resolved-file>
|
撤销
放弃工作目录下的所有修改
移除缓存区的所有文件(i.e. 撤销上次git add)
放弃某个文件的所有本地修改
1
| $ git checkout HEAD <file>
|
重置一个提交(通过创建一个截然不同的新提交)
将HEAD重置到指定的版本,并抛弃该版本之后的所有修改
1
| $ git reset --hard <commit>
|
将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改
将HEAD重置到上一次提交的版本,并保留未提交的本地修改
1
| $ git reset --keep <commit>
|
相关资料:
Github创建隐藏分支
1 2 3
| git clone git@github.com:feibaichens/backup.git git branch -r git checkout -b data origin/data
|
Learn Git Branching
猴子都能懂的Git入门
Git指令速查表
github快速入门
廖雪峰Git教程
图解Git
git - 简明指南