活灵活现用Git-基础篇

Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。Git是最初被Linux Torvalds开发用来管理Linux内核的。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。

 

许多开源项目包括Linux kernel, Samba, X.org Server, Ruby on Rails,都已经过渡到使用Git作为自己的版本控制工具。对于喜欢写代码的开发者来说,Git带来两点最大的好处:一是可以在热河地点提交自己的代码和查看代码版本;二是可以开很多分支去实践我们的想法,而合并这些分支的开销几乎可以忽略不计。

 

本人的章节从介绍Git的基本命令和操作,Git版本库的初始化,基本操作和独有的常用命令三部分着手。

 

【版本库初始化】

  • git clone:当你已经有一个远程的Git版本库,只需要本地克隆一份,如“git clone git://github.com/someone/some_project.git myproject”,这个命令是将“git://github.com/someone/some_project.git”这个URL地址的远程版库完全克隆到本地myproject目录下面。
  • git init和git remote:当你在本地创建了一个工作目录,进入该目录,使用“git init”进行初始化,Git以后会对该目录下文件进行版本控制。这时如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把URL记录下来,此时你就可以使用“git remote add”来增加一个远程服务器端,如“git remote add origin git://github.com/someone/another_project.git”,这个命令会增加URL地址为“git://github.com/someone/another_project.git”,名称为origin的远程服务器,以后提交代码的时候,只需要使用origin别名即可。

【基本命令】

  • git pull:从其他的版本库(远程或本地库)将代码更新到本地,如“git pull origin master”是将origin这个版本库的代码更新到本地的master主枝。
  • git add:将当前更改或新增的文件加入Git的索引中,加入到Git的索引就表示记入了版本历史里,这也是提交之前需要执行的一步,如“git add app/model/user.rb”会增加“app/model/user.rb”文件到Git的索引。
  • git rm:从当前的工作空间和索引中删除文件,如“git rm app/model/user.rb”。
  • git commit:提交当前工作空间的修改内容,如“git commit -m "2010-6-1 modified" ”。提交时必须用-m来输入一条提交信息。
  • git push:将本地commit的代码更新到远程版本库中,如“git push origin”。
  • git log:查看历史日记。
  • git branch:对分支的增、删、查等操作。如“git branch new_branch”会在当前的工作版本创建一个名为new_branch的分支,“git branch -D new_branch”会强制删除名为new_branch的分支,“git branch”会列出本地所有的分支。
  • git checkout:作用一是在不同的branch之间切换,如“git checkout branch1”,切换到branch1分支。作用二是还原代码,如“git checkout app/model/user.rb”,会将user.rb文件从上一个已提交的版本中更新回来,未提交到部分会全部回滚。
  • git reset:将当前的工作目录完全回滚到指定的版本号。
  • git tab:将某个工具的版本打上一个标签,这样就不要记忆复杂的版本号哈希值了。

【目录结构】

Git之所以能够提供方便的本地分支等特征,与它的文件存储机制有关。在代码根目录下有一个名为.git的目录,该目录有如下主要文件:

branches   hooks   info   logs   objects   refs   FETCH_HEAD   HEAD   config   description   index   

其中,HEAD文件存放根节点的信息;

         refs目录存储了你在当前版本控制目录下的各种不同引用,它有heads、remotes、stash、tags四个目录,分别存储对不同根、远程版本库、Git栈和标签的四种引用。可以通过“git show-ref”清晰查看引用信息;

        logs目录根据不同的引用存储了日记信息。

 

原文地址:http://phoenixtoday.blogbus.com/logs/33458940.html

<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、付费专栏及课程。

余额充值