git基础-获取git仓库

本文介绍了如何配置和初始化Git仓库,包括从现有目录开始版本控制、添加和提交文件,以及从远程仓库克隆。重点讲解了gitstatus、add、commit和clone等关键命令及其用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过本章的学习,应该能够配置和初始化一个仓库,开始和停止跟踪文件,暂存和提交更改。我们还将展示如何设置 Git 来忽略特定的文件和文件模式,如何快速轻松地撤销错误,如何浏览项目的历史记录并查看提交之间的更改,以及如何与远程仓库进行推送和拉取。

获取一个git仓库

获取一个 Git 仓库

通常有两种方式可以获取一个 Git 仓库:

  • 将一个当前没有进行版本控制的本地目录转换为一个 Git 仓库
  • 从其他地方克隆一个现有的 Git 仓库。

无论哪种方式,最终都会在本地机器上获得一个 Git 仓库,准备开始工作。

从现有目录初始化仓库

如果有一个当前尚未进行版本控制的项目目录,而想要用 Git 开始对其进行控制,首先需要进入该项目的目录。一下操作以ubuntu22.04为例:

$ cd git-tech

$ git init

这会创建一个名为 .git 的新子目录,其中包含所有必要的仓库文件 —— 一个 Git 仓库的骨架。此时,项目中尚未跟踪任何内容。有关刚刚创建的 .git 目录中包含哪些文件的详细信息,请参阅 Git 内部原理。

创建新的文件, 并对这些文件进行版本控制。

$ git status

$ git add git-tech.c

$ git commit -m "init a .c file"

clone一个已存在的仓库

如果想获取一个已存在的 Git 仓库的副本 —— 例如,一个我们想要贡献的项目 —— 需要使用的命令是 git clone。

如果熟悉其他版本控制系统,比如 Subversion,就会注意到命令是 "clone" 而不是 "checkout"。这是一个重要的区别 —— Git 不仅仅获取一个工作副本,而是接收了服务器上几乎所有数据的完整副本。当运行 git clone 时,默认情况下会拉取项目历史上每个文件的每个版本。事实上,如果当前服务器磁盘损坏,通常可以使用任何一个客户端上的几乎任何克隆来将服务器恢复到克隆时的状态(可能会丢失一些服务器端的钩子等内容,但所有版本化的数据都会在那里)。

可以通过 git clone <url> 来克隆一个仓库。例如,如果想克隆名为 libgit2 的 Git 可链接库,可以这样做:

$ git clone https://github.com/libgit2/libgit2

这会创建一个名为 libgit2 的目录,在其中初始化一个 .git 目录,拉取该仓库的所有数据,并检出最新版本的工作副本。如果进入刚刚创建的 libgit2 目录,会看到其中的待使用项目文件

如果想要将仓库克隆到一个名为 libgit2 之外的目录中,可以将新目录名指定为一个额外的参数:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Git有多种不同的传输协议可供选择。前面的示例使用了 https:// 协议,但也可能会见到 git:// 或 user@server:path/to/repo.git,它使用 SSH 传输协议。

<think>我们正在回答用户关于Git各种扩展和子模块工具包的用途及安装方法的问题。用户提到了多个软件包,我们需要逐一解释它们的用途,并提供在Ubuntu系统上的安装方法。 参考引用: - [^1] 提到了git-daemon-run, git-daemon-sysvinit, git-doc, git-el, git-email, git-gui, gitk, gitweb, git-arch, git-cvs, git-mediawiki等包。 - [^2] 提供了在Ubuntu 20.04上安装Git的方法。 - [^3] 展示了下载ijkplayer代码的git clone命令。 由于用户的问题集中在Ubuntu系统上,我们将以Ubuntu为例(特别是20.04 LTS)说明安装方法。 ### 各软件包的用途及安装方法 1. **git-daemon-run 和 git-daemon-sysvinit** - **用途**:这两个包提供了Git守护进程(git-daemon),它允许通过`git://`协议进行匿名访问Git仓库。通常用于搭建公共的Git仓库服务器。 - `git-daemon-run` 使用`runit`来管理守护进程(在Ubuntu中较少使用)。 - `git-daemon-sysvinit` 使用传统的SysVinit脚本(如`/etc/init.d/git-daemon`)来管理守护进程。 - **安装方法**: ```bash sudo apt update sudo apt install git-daemon-run # 或者 git-daemon-sysvinit ``` 安装后,需要配置仓库目录并启动服务。 2. **git-doc** - **用途**:包含Git的文档(如手册页、HTML文档)。安装后可以通过`man git-<command>`或浏览器查看HTML文档(通常在`/usr/share/doc/git-doc/`目录下)。 - **安装方法**: ```bash sudo apt install git-doc ``` 3. **git-el** - **用途**:提供Emacs编辑器对Git的支持(如magit模式)。 - **安装方法**: ```bash sudo apt install git-el ``` 4. **git-email** - **用途**:提供使用Git发送邮件的功能(如`git send-email`命令),常用于提交补丁到邮件列表。 - **安装方法**: ```bash sudo apt install git-email ``` 5. **git-gui** - **用途**:Git的图形化界面(基于Tcl/Tk),提供提交、分支管理等操作的图形界面。 - **安装方法**: ```bash sudo apt install git-gui ``` 安装后,通过`git gui`命令启动。 6. **gitk** - **用途**:Git仓库浏览器,主要用于查看提交历史。 - **安装方法**: ```bash sudo apt install gitk ``` 安装后,通过`gitk`命令启动。 7. **gitweb** - **用途**:提供通过网页浏览器访问Git仓库的功能(需要配置Web服务器)。 - **安装方法**: ```bash sudo apt install gitweb ``` 安装后,需要配置Apache/Nginx等Web服务器。 8. **git-arch, git-cvs, git-mediawiki, git-svn** - **用途**:这些是Git与其他版本控制系统(如Arch、CVS、MediaWiki、SVN)的互操作工具。 - `git-arch`:支持与GNU Arch仓库交互(已过时)。 - `git-cvs`:支持在Git和CVS仓库之间互操作。 - `git-mediawiki`:支持从MediaWiki站点获取页面历史(需要`mediawiki`包)。 - `git-svn`:支持与Subversion(SVN)仓库交互(常用)。 - **安装方法**: 这些工具通常包含在`git`主包中,但也可以单独安装(如果拆分的话)。在Ubuntu中,它们可能被打包成单独的包,但更常见的是作为`git`的一部分。如果需要单独安装,可以尝试: ```bash sudo apt install git-svn git-cvs git-mediawiki ``` 注意:`git-arch`在较新的Ubuntu中可能已被移除。 ### 安装Git基础 如果尚未安装Git,可参考[^2]安装: ```bash sudo apt update sudo apt install git ``` ### 总结 以上软件包都是Git的扩展工具,用于增强Git的功能(如图形界面、邮件支持、与其他版本控制系统交互等)。在Ubuntu中,使用`apt install`命令即可安装。安装后,根据具体需求进行配置即可使用。 §§相关问题§§ 1. 如何配置Git守护进程(git-daemon)以提供匿名访问? 2. 如何使用git-svn与Subversion仓库进行交互? 3. 如何配置gitweb以便通过网页访问Git仓库? 4. 在Ubuntu上安装Git后,如何查看Git的文档?</think>### Git扩展工具包用途及安装方法 #### 1. 核心组件 - **git-daemon-run / git-daemon-sysvinit** 用途:提供Git守护进程服务,支持`git://`协议匿名访问仓库 安装:`sudo apt install git-daemon-run` 配置:需在`/etc/sv/git-daemon/run`设置仓库路径 - **git-doc** 用途:Git官方文档(HTML格式) 安装:`sudo apt install git-doc` 访问:`file:///usr/share/doc/git-doc/` - **git-el** 用途:Emacs编辑器的Git集成插件 安装:`sudo apt install git-el` 功能:提供magit等Emacs Git模式 #### 2. 通信工具 - **git-email** 用途:通过邮件发送补丁(`git send-email`) 安装:`sudo apt install git-email` 配置示例: ```ini [sendemail] smtpServer = smtp.example.com smtpUser = your@email.com ``` - **git-mediawiki** 用途:与MediaWiki协作(维基页面版本控制) 安装:`sudo apt install git-mediawiki` 使用:`git clone mediawiki::https://wiki.example.com` #### 3. 图形界面 - **git-gui** 用途:Tcl/Tk图形化客户端 安装:`sudo apt install git-gui` 启动:`git gui` - **gitk** 用途:仓库历史可视化工具 安装:`sudo apt install gitk` 启动:`gitk --all` - **gitweb** 用途:网页版仓库浏览器 安装:`sudo apt install gitweb` 配置:需设置Apache/Nginx #### 4. 版本控制桥接 - **git-svn** 用途:与Subversion仓库交互 安装:`sudo apt install git-svn` 克隆SVN:`git svn clone http://svn.example.com` - **git-cvs** 用途:与CVS仓库交互 安装:`sudo apt install git-cvs` 导入:`git cvsimport -C repo_name cvsroot` - **git-arch**(历史组件) 用途:与GNU Arch仓库交互(已淘汰) #### 安装说明(Ubuntu 20.04+) 1. 更新软件源: ```bash sudo apt update ``` 2. 批量安装(示例): ```bash sudo apt install git-daemon-run git-doc git-email git-gui gitk gitweb git-svn git-cvs ``` 3. 验证安装: ```bash git --version # 应显示 >= 2.25.1[^2] ``` > **注意**:部分工具如`git-mediawiki`需要额外依赖,安装时自动解决。图形工具需X11环境支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值