好的,在看到PJ Hyett 的这篇文章之后,我决定跳到最后并与Git一起去。
所以我需要的是初学者对 Git 的实用指南。 “初学者” 被定义为知道如何处理编译器的人,在某种程度上理解Makefile是什么,并触及源代码控制而不理解它。
“实用” 被定义为这个人不想详细了解 Git 在后台做什么,甚至不关心(或知道)它是分布式的。您的回答可能暗示了可能性,但尝试瞄准想要在备份和安全的 “服务器” 上保留 “主” 存储库的初学者,并将其本地存储库视为仅仅是 “客户端” 资源。
所以:
I will go through the entries from time to time and 'tidy' them up so they have a consistent look/feel and it's easy to scan the list - feel free to follow a simple"header - brief explanation - list of instructions - gotchas and extra info"template. I'll also link to the entries from the bullet list above so it's easy to find them later.
git 存储库只是一个包含特殊.git
目录的目录。
这与 “集中式” 版本控制系统(如 subversion)不同,其中 “存储库” 托管在远程服务器上,您可以将其checkout
到 “工作副本” 目录中。使用 git,您的工作副本就是存储库。
只需在包含您要跟踪的文件的目录中运行git init
即可。
例如,
cd ~/code/project001/
git init
这将在当前目录中创建一个.git
(隐藏)文件夹。
要创建一个新项目,请使用附加参数(要创建的目录的名称)运行git init
:
git init project002
(This is equivalent to: mkdir project002 && cd project002 && git init)
要检查当前当前路径是否在 git 存储库中,只需运行git status
- 如果它不是存储库,它将报告 “致命:不是 git 存储库”
您还可以列出.git
目录,并检查它包含类似于以下内容的文件 / 目录:
$ ls .git
HEAD config hooks/ objects/
branches/ description info/ refs/
如果出于某种原因你希望 “去 git” 一个存储库(你希望停止使用 git 来跟踪该项目)。只需删除存储库基础级别的.git
目录即可。
cd ~/code/project001/
rm -rf .git/
警告:这将破坏所有修订历史记录, 所有标记,git 所做的一切 。它不会触及 “当前” 文件(您当前可以看到的文件),但以前的更改,删除的文件等将无法恢复!
包含在 git 中 - 从命令行运行git gui
,Windows msysgit安装程序将其添加到 “开始” 菜单。
Git GUI 可以完成 git 所需的大部分工作。包括阶段更改,配置 git 和存储库,推送更改,创建 / 签出 / 删除分支,合并以及许多其他内容。
我最喜欢的功能之一是右键单击菜单中的 “stage line” 和 “stage hunk” 快捷方式,它允许您提交文件的特定部分。您可以通过git add -i
实现相同的功能,但我觉得它更容易使用。
它不是最漂亮的应用程序,但它适用于几乎所有平台(基于 Tcl / Tk)
还包括 git。它是一个 git 历史记录查看器,可以让您可视化存储库的历史记录(包括分支,创建和合并时)。您可以查看和搜索提交。
与 git-gui 很好地融合在一起。
Mac OS X 应用程序。主要是git log
的等价物,但与github有一些集成(如 “网络视图”)。
看起来很漂亮,适合 Mac OS X. 您可以搜索存储库。 Gitnub 最大的批评是它以线性方式显示历史(一次只显示一个分支) - 它不会显示分支和合并,这对于 git 来说很重要,尽管这是一个有计划的改进。
打算成为 “OS X 的 gitk 克隆”。
它可以可视化非线性分支历史,执行提交,查看和搜索提交,还有一些其他很好的功能,如能够 “快速查看” 任何修订版本中的任何文件(按文件列表视图中的空格),导出任何文件(通过拖放)。
与git-gui
/ gitk
,它更好地集成到 OS X 中,即使拥有特别大的存储库,它也能快速稳定地运行。
最初的 git repository pieter最近没有更新(写作时间超过一年)。在brotherbard / gitx 上有一个更积极维护的分支 - 它添加了 “侧边栏,提取,拉动,推送,添加远程,合并,樱桃挑选,rebase,克隆,克隆到”
下载 | 截图 | git 存储库 | 兄弟叉 | laullon 叉
从主页:
SmartGit 是分布式版本控制系统 Git 的前端,可在 Windows,Mac OS X 和 Linux 上运行。 SmartGit 适用于喜欢通过命令行客户端使用图形用户界面的开发人员,使用 Git(今天功能最强大的 DVCS)提高效率。
您可以从他们的网站下载。
适用于 Windows 用户的 TortoiseSVN Git 版本。
它将 TortoiseSVN 移植到 TortoiseGit 最新版本 1.2.1.0 此版本可以完成常规任务,例如提交,显示日志,差异两个版本,创建分支和标记,创建补丁等等。有关详细信息,请参见ReleaseNotes 。欢迎贡献这个项目。
QGit 是一个基于 Qt / C ++ 构建的 git GUI 查看器。
使用 qgit,您将能够浏览修订历史记录,查看修补程序内容和更改的文件,以图形方式跟踪不同的开发分支。
gitg 是一个 git 存储库查看器,目标是 gtk + / GNOME。其主要目标之一是为跨多个桌面的 git 前端提供更统一的用户体验。这不是编写跨平台应用程序,而是与其他操作系统(如 GitX for OS X)的类似客户端密切合作。
Gitbox 是 Git 版本控制系统的 Mac OS X 图形界面。在单个窗口中,您可以看到分支,历史记录和工作目录状态。
日常操作很简单:使用复选框进行舞台和非舞台更改。单击即可提交,拉取,合并和推送。双击更改以使用 FileMerge.app 显示差异。
Gity 网站没有太多信息,但从那里的截图看来,它似乎是一个功能丰富的开源 OS X git gui。
Meld 是一个视觉差异和合并工具。您可以比较两个或三个文件并对其进行编辑(差异动态更新)。您可以比较两个或三个文件夹并启动文件比较。您可以从流行的版本控制系统浏览和查看工作副本,例如 CVS,Subversion,Bazaar-ng 和 Mercurial [ 和 Git ]。
Steve Dekorte 为 OSX 提供的 Git GUI。
一目了然,看看哪些远程分支有拉动变化,本地仓库有变化推动。支持添加,提交,推送,拉取,标记和重置的 git 操作,以及项目 hieracy 的视觉差异和可视化浏览,突出显示本地更改和添加。
1 个存储库免费,25 美元以上。
着重于让 Git 易于使用。具有本机 Cocoa(类似 mac)UI,快速存储库浏览,克隆,推 / 拉,分支 / 合并,可视差异,远程分支,轻松访问终端等等。
通过使最常用的 Git 动作直观且易于执行,Sprout(以前的 GitMac)使 Git 用户友好。 Sprout 与大多数 Git 工作流程兼容,非常适合设计人员和开发人员,团队协作以及高级和新手用户。
适用于 Mac OSX 的功能丰富的 Git GUI。 30 天免费试用,单用户许可证价格为 59 美元。
EGit 是 Git 版本控制系统的 Eclipse Team 提供程序。 Git 是一个分布式 SCM,这意味着每个开发人员都拥有代码每个修订版的所有历史记录的完整副本,从而可以非常快速和通用地查询历史记录。
EGit 项目是在 Git 的 JGit Java 实现之上实现 Eclipse 工具。
适用于 Windows 的开源 - 在单个软件包中安装使用 Git 所需的一切,易于使用。
Git Extensions 是一个工具包,可以让 Windows 上的 Git 更直观。 shell 扩展将在 Windows 资源管理器中集成,并在文件和目录上显示上下文菜单。还有一个 Visual Studio 插件可以使用 Visual Studio 中的 git。
非常感谢dbr详细介绍了 git gui 的东西。
SourceTree 是 Git,Mercurial 和 SVN 的免费 Mac 客户端。由 BitBucket 背后的人 Atlassian 构建,它似乎与任何 VC 系统同样有效,它允许您掌握用于所有项目的单个工具,但它们是版本控制的。功能丰富,免费。
适用于新手和高级用户的专家就绪和功能丰富:
查看传出和传入的更改集。分支之间的樱桃挑选。补丁处理,rebase,藏匿 / 搁置等等。
好吧,尽管你要求我们不 “简单地” 链接到其他资源,但是当已经存在一个真正相当不错的社区成长(和不断增长的)资源时,这是非常愚蠢的: Git 社区书 。说真的,一个问题中的这 20 多个问题将是简洁和一致的。 Git 社区手册以 HTML 和 PDF 格式提供,可以通过清晰,格式良好和同行评审的答案回答您的许多问题,并且格式允许您直接跳到手头的问题。
唉,如果我的帖子真的让你心烦意乱,那么我会删除它。只是这样说。