git-操作手册

管理机制

1.工作区域划分
工作区
	1.本地工作路径
暂存区
	2.位于(.git/index)文件中,所以暂存区有时也称为索引(index)
版本库	
	3.位于(.git/)目录中,含此项目的快照数据,即本地仓库
	4.位于服务器上的远程仓库

操作命令

1.创建仓库
git init [dentry]
-初始化一个git仓库
--[dentry]默认当前目录

git remote add <repositoryName> <url> 
-增加名为<repositoryName>的远程仓库关联
--以后提交代码使用<repositoryName>即可

git clone <url>		远程仓库--->本地仓库
-URL支持3种协议:http/ssh/git
2.提交与修改
工作区
	git rm [file]
	-删除工作区文件
	--git rm=[rm file]+[git add file]

	git mv
	-移动或重命名工作区文件

	git diff
	-查看工作区做的更改(上次add后)

	git add [file]		工作区--->暂存区
	-实际是一个脚本命令,调用git命令git update-index添加一个文件到git index中

	git add .
	git add -A
	-添加所有未跟踪的文件到index中

	git status [-s]
	-查看工作区文件是否加入到index暂存区跟踪
	--参数-s,来获得简短的输出结果

暂存区
	git rm --cached [file]
	-删除暂存区文件(停止跟踪file文件)
	--不影响工作区,本地仓下次commit生效

	git reset HEAD [file]
	-删除还未提交的暂存区更改
	--使用当前HEAD(commited)替换掉index中的内容

	git diff --cached
	git diff --staged
	-查看暂存区做的更改(上次commit后)

git commit
	git config --global user.name 'name'
	git config --global user.email 'email'
	-设置提交代码时的用户信息
	--global 参数对所有仓库有效

	git commit -a		暂存区--->本地仓库
	-把所有的change加到git index里然后再commit

	git commit -v
	-可以看到commit的差异

	git commit -m 'msg'
	-添加commit信息

	git commit --amend
	-使用上次的提交号,进行修改提交

本地版本仓库
	git log
	-查看commit的日志

	git show <commitId>
	-查看某次提交的详情

git reset
-修改HEAD的位置,使HEAD指到某个时间节点的branch上,且舍去之后的版本
--有三种模式[mixed]默认,[soft],[hard]

	git reset --mixed <HEAD>
	-用于回退到某个版本
	--保留工作区,清空暂存区的改动

	git reset --hard <HEAD>
	-用于回退到某个版本
	--清空工作区&清空暂存区的改动(擦除错误记录)

	git reset --soft <HEAD>
	-用于回退到某个版本
	--会保留工作区的内容,并把因为保留工作区内容所带来的新的文件差异放进暂存区

git revert
-回滚到某次提交,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在

	git revert [-n] <commitId>
	-回滚到某次提交
	--参数-n=[--no-commit],带此参数不自动提交

	HEAD 表示当前版本
	HEAD^ 上一个版本
	HEAD^^ 上上一个版本
	以此类推...

临时空间
	git stash push
	-将文件给push到一个临时空间中

	git stash pop
	-将文件从临时空间pop下来

远程仓库
git fetch	远程仓库--->本地仓库
-取回更新
	git fetch origin
	-取回远程关联版本仓库全部更新

	git fetch origin <branchName>
	-取回远程仓库<branchName>分支的更新

	git log -p FETCH_HEAD
	-取回更新后,会返回一个FETCH_HEAD,指的是远程仓对应分支的最新状态,可以通过它查看刚才取回的信息

git merge
-从指定commit合并到当前分支

	git merge -m <msg> <commitId>
	-常用合并

git pull [远程主机名] [远程分支名]:[本地分支名]	远程仓库--->工作区	

	* 其实就是 git fetch 和 git merge FETCH_HEAD 的简写

	git pull origin master
	-将远程主机 origin 的 master 分支拉取过来,与本地的当前分支合并


git push [远程主机名] [本地分支]:[远程分支]	本地仓库--->远程仓库

	git push origin test:master
	-提交本地test分支作为远程的master分支

	git push origin master
	-将本地的 master 分支推送到 origin 主机的 master 分支

	git push --force origin master
	git push -f origin master
	-如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数
3.信息查看
提交日志
	git log --oneline
	-查看历史提交记录的简洁的版本

	git blame [file]
	-以列表形式显示修改记录

其他信息
	git config --list
	-看所有用户

	git ls-files
	-看已经被提交的
4.分支(branch)操作
	git branch
	-查看本地所有分支

	git branch -r
	-查看远程所有分支

	git branch -a
	-查看所有的分支

	git branch <branchName>
	-创建本地分支,不自动切换到新分支

	git checkout <branchName>
	-切换分支

	git checkout -b <branchName>
	-创建本地分支,自动切换到新分支

	git branch -d <branchName>
	-d选项只能删除本地已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

	git merge <branchName>
	-将名称为[name]的分支与当前分支合并

	git push origin <branchName>
	-创建远程分支(本地分支push到远程)

	git push origin --delete <branchName>
	git push origin :<branchName>
	-删除远程分支
5.远程仓库操作
git remote
-查看关联远程仓库名称
	git remote -v
	-显示关联的远程仓库详细信息

	git remote add <repositoryName> [branchName] <url>
	-添加远程仓库的关联
	--branchName 默认为master

	git remote show origin
	-显示某个远程仓库的信息

	git remote remove <name>
	-删除远程仓库关联

	git remote set-url origin <newUrl>
	-修改远程仓库的关联
6.版本(tag)操作
	git tag
	-查看版本

	git tag [name]
	-创建版本

	git tag -d [name]
	-删除版本

	git tag -r
	-查看远程版本

	git push origin [name]
	-创建远程版本(本地版本push到远程)

	git push origin :refs/tags/[name]
	-删除远程版本

	git pull origin --tags
	-合并远程仓库的tag到本地

	git push origin --tags
	-上传本地tag到远程仓库

	git tag -a [name] -m 'yourMessage'
	-创建带注释的tag

git下载

https://git-scm.com/download/win  
https://git-scm.com/download/linux

安装教程

https://www.jianshu.com/p/bebba0d8038e   
<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环境支持。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值