Git-基础

本文围绕Git基础展开,介绍了常用命令,如获得版本库、版本管理、查看信息等,还提及了#gitignore文件的创建与使用。详细讲解了分支操作,包括查看、新建、切换、删除和合并等,以及HEAD和master的指向。此外,给出了Mac/Linux下使用Git的一些小技巧。

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


title: Git基础
date: 2019-02-27 13:57:19
tags:
- Git
categories:
- Git
toc: true

Git常用命令

  • 获得版本库
    • git init
    • git clone
  • 版本管理
    • git add
    • git commit
    • git rm
  • 查看信息
    • git help
    • git log
    • git diff
  • 远程协作
    • git pull
    • git push

git log查看提交记录

git log -3,查看最近三条的提交记录

git log --pretty=oneline,以单行的形式查看提交记录

git log --pretty=format:"%h - %an,%ar : %s",以特定格式显示提交记录


Git的提交id(commit id)是一个摘要值,这个摘要值实际上是用sha1计算出来的。


git checkout -- 文件名/文件夹名,丢弃提交


对于user.name与user.email来说,有3个地方可以设置

  1. /etc/gitconfig(几乎不会使用,如果使用的是Xcode自带的git的话这个目录是不存在的,需要手动创建),git config --system
  2. ~/.gitconfig(很常用),git config --global
  3. 针对特定项目的,.git/config文件中,git config --local

上面三个设置,优先级由上到下递减,也就是说在3中配置了,会屏蔽掉1,2的配置。

git config --local user.name '张三'

git config --local user.email '123@abc.com'

查看文档:git help config git config --help man git-config git config

git config user.name:查看用户名

git config user.email:查看用户邮箱


注意:git rmrm

git mv,rename


git add --all <==> git add .

提交描述信息写错了,需要修改,使用git commit --amend -m "修正msg"

#gitignore

.gitignore文件需要手动创建,将需要忽略的文件名放在这个文件中,支持增则表达式。

一些栗子:

要忽略项目目录下的test.xcodeproject文件,将文件名写入即可。

忽略项目目录下所有的.xcodeproject工程文件,则*.xcodeproject

!a.xcodeproject,a.xcodeproject这个工程文件不忽略。

  • *.c#忽略所有以.c为后缀的文件
  • !lib.c#但是lib.c除外
  • /TODO#仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO
  • build/#忽略build目录下的所有文件
  • doc/*.txt#会忽略doc/notes.txt,但不会忽略doc/server/arch.txt
  • /*/test.txt,忽略根目录下第一级子目录下的test.txt文件
  • /**/test.txt,忽略根目录下所有子目录里的test.txt文件

分支branch

查看当前分支:git branch

新建分支:git branch new_branch

切换分支:git checkout new_branch

快捷切换回上一次的分支:git checkout -,这个和cd -类似

删除分支:git branch -d new_branch

删除分支常见错误

​ 1. 删除当前正处于的分支

error: 无法删除检出于 '/Users/hanoi_ahoj/mtgit' 的分支 'new_branch'。

​ 2. 删除一个没有合并的分支

error: 分支 'new_branch' 没有完全合并。
如果您确认要删除它,执行 'git branch -D new_branch'

合并分支:git merge new_branch

HEAD

HEAD指向的是当前分支

(HEAD保存在.git目录下的HEAD文件里,cat HEAD看一看)

master

master本质上指向提交

  • HEAD指向当前分支

1.png

  • 新建一个分支:dev

    2.png

  • 在dev分支上进行了一次commit

    3.png

  • fast-forward(即快进,快速合并,没有冲突)

    4.png

  • 如果两个分支修改的同一个文件的同一行,在合并的时候Git是不知道以master为准还是别的分支为准,这时就会提示冲突,这个时候看这个文件的内容就会发现里面的内容被Git用自己的方式标注出来了冲突的地方,需要自己手动处理冲突。解决完后使用git add file_name来告诉Git这个冲突已经解决了。当在master分支中解决了这一个冲突后,在dev分支中再进行合并master分支,就不会提示冲突了,而是fast-forward。

Mac/Linux下一些小技巧

优秀的工具:oh my zsh

拷贝文件cp,移动文件mv(也用来重命名)

当不想输入当前命令,可以使用ctrl+c

rm -rf 文件夹名,递归的删除文件夹

ctrl+l,相当于clear,清屏幕

ctrl+a,跳到当前命令的开头,ctrl+e,跳到当前命令的结尾

l,相当于ls -al,显示当前目录下所有文件,包括隐藏文件

ctrl+f,向下翻页,ctrl+b,向上翻页

mkdir -p test/test1/test2,递归建立多个目录

快速切换回上次的文件夹:cd -

同时执行多条命令:mkdir mydir && cd mydir

.代表当前目录,..代表上一级目录


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

余额充值