使用Git的版本控制¶
在你开始之前¶
以下资源包含有关版本控制系统的有用信息:
- A Visual Guide to Version Control:
用Subversion示例简单解释版本控制。
A successful Git branching model: 清晰而结构化的工作流程。
Git纸条¶
来源
Git欺骗表,(c)2011,Salesforce.com,Inc.,网址:https://na1.salesforce.com/help/doc/en/salesforce_git_developer_欺骗表.pdf
概述¶
当您第一次设置Git时,请设置您的用户名和电子邮件地址,以便您的第一次提交将正确记录它们:
git config --global user.name "My Name"
git config --global user.email "user@email.com"
基本Git工作流示例¶
初始化一个新的git存储库,然后将目录中的所有文件置于阶段,最后提交初始快照::
$ git init
$ git add .
$ git commit -m 'initial commit'
创建一个名为feature_a的新分支,将其签出,使其成为活动分支,然后编辑并暂存一些文件,最后提交新快照:
$ git branch feature_A
$ git checkout feature_A
$ (edit files)
$ git add (files)
$ git commit -m 'add feature A'
切换回主分支,恢复您刚才所做的更改,然后编辑一些文件并直接在主分支上下文中提交新的更改。::
$ git checkout master
$ (edit files)
$ git commit -a -m 'change files'
将特性“A”更改合并到主分支上下文中,并结合您的所有工作。最后删除功能“分支”。::
$ git merge feature_A
$ git branch -d feature_A
设置初始化(&I)¶
Git配置和存储库初始化和克隆。
命令
描述
git config [key] [value]
在此存储库中设置配置值
git config global [key] [value]
为此用户全局设置配置值
git init
将现有目录初始化为Git存储库
git clone [url]
从URL克隆Git存储库
git help [command]
获取有关任何git命令的帮助
阶段和快照¶
使用快照和Git临时区域。
命令
描述
git status
显示为下一次提交准备的内容以及在工作目录中修改的内容的状态
git add [file]
按现在的样子添加一个文件到下一个提交(阶段)
git reset [file]
重置文件的临时区域,使更改不在下一次提交中(取消暂存)
git diff
已更改但未分级的内容的差异
git diff --staged
阶段性但尚未提交的内容的差异
git commit
将分段内容作为新的提交快照提交
git rm [file]
从工作目录中删除一个文件,然后取消对其的存储
合并功能¶
与Git分支和Stash合作。
命令
描述
git branch
列出你的分支。A*将出现在当前活动分支的旁边。
git branch [branch-name]
在当前提交时新建分支
git checkout [branch]
切换到另一个分支并将其签入您的工作目录
git checkout -b [branch]
创建一个分支并立即切换到它
git merge [branch]
将另一个分支合并到当前活动的分支中,并将合并记录为提交
git log
显示提交日志
git stash
暂时将当前未提交的修改存储在工作目录中
git stash apply
重新应用上次隐藏的更改
检查和比较¶
正在检查日志、差异和对象信息。
命令
描述
git log
显示当前活动分支的提交历史记录
git log branchB..branchA
显示不在BranchB上的BranchA上的提交
git log --follow [file]
显示已更改文件的提交,即使在重命名之间也是如此
git diff branchB...branchA
显示分支A中不在分支B中的内容的差异
git show [SHA]
以可读格式显示Git中的任何对象
在Github上捐款¶
要为GitHub(或其他存储库宿主网站,如BitBucket)上托管的项目提供帮助,您可以在线分叉项目,然后在本地克隆分叉,进行更改,将其推回到GitHub,然后发送拉取请求,该请求将通过电子邮件发送给维护者。::
fork project on github
$ git clone https://github.com/my-user/project
$ cd project
$ (edit files)
$ git add (files)
$ git commit -m 'Explain what I changed'
$ git push origin master
go to github and click ‘pull request’ button
可视Git作弊表¶
来源
Git作弊表,(c)2009-2012,Andrew Peterson网址:http://ndpsoftware.com/git-craitsheet.html
git命令的列表,根据它们的影响进行分类。
交互式联机版本提供了每个命令的描述。
如何。。。¶
本节包括执行不同操作的其他git命令。
设置合并工具以解决冲突¶
将kdiff3配置为合并工具(在Windows中)::
$ git config --global mergetool.kdiff3.path 'C:\Program Files (x86)\KDiff3\kdiff3.exe'
$ git config --global merge.tool kdiff3
调用kdiff3::
$ git mergetool <file>
从受版本控制的文件集中删除多个文件¶
这将删除已从磁盘中删除的多个文件::
$ git rm $(git ls-files --deleted)
或者,编辑 .git\config
文件,并添加以下行:
[alias]
rma = !git ls-files --deleted -z | xargs -0 git rm
然后使用别名运行命令:
$git rma
禁用带引号的文件名¶
文件名中的特殊字符和空格可能有问题。要禁用引号文件名(Windows Unicode支持),请使用:
$ git config [--global] core.quotepath off