【Git】常用命令汇总

目录

一.安装及配置

[1.在 Windows 上安装](#1.在 Windows 上安装)

2.用户信息

3.差异分析工具

二.基础

1.创建仓库

2.提交与修改

三.分支管理

1.创建分支

2.合并分支

四.远程操作

[1.管理 Git 仓库中的远程仓库](#1.管理 Git 仓库中的远程仓库)

2.数据的获取与推送

五.标签

1.创建轻量标签和附注标签

2.查看标签和标签信息

3.推送标签到远程仓库

4.删除标签

一.安装及配置

1.在 Windows 上安装

msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:

http://msysgit.github.com/

2.用户信息

配置个人的用户名称和电子邮件地址。

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

如果用 --global 选项,更改的是位于用户主目录下的配置文件,以后所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

•查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

$ git config --list
user.name=Scott Chacon
user.email=schacon@gmail.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可。

$ git config user.name
Scott Chacon

3.差异分析工具

在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:

$ git config --global merge.tool vimdiff

二.基础

1.创建仓库

第1种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第2种是从已有的 Git 仓库克隆出一个新的镜像仓库来。

**•**在工作目录中初始化新仓库

$ git init
$ git add *.c
$ git add README
$ git commit -m 'initial project version'

•从现有仓库克隆

在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 grit 目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。

$ git clone git://github.com/schacon/grit.git

如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

$ git clone git://github.com/schacon/grit.git mygrit

要克隆Git仓库的指定分支

git clone -b <branch_name> --single-branch <repository_url>

2.提交与修改

•git status:查看仓库当前的状态,显示有变更的文件。

$ git status
On branch master
nothing to commit, working directory clean

•忽略某些文件

可以创建1个名为 .gitignore 的文件,列出要忽略的文件模式。来看一个实际的例子:

$ cat .gitignore
*.[oa]
*~

第1行告诉 Git 忽略所有以 .o.a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。

第2行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。

文件 .gitignore 的格式规范如下:

|--------------------------------------|
| 1. 所有空行或者以注释符号 开头的行都会被 Git 忽略 |
| 2.可以使用标准的 glob 模式匹配 |
| 3.匹配模式最后跟反斜杠(/)说明要忽略的是目录 |
| 4.要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反 |

再看一个 .gitignore 文件的例子:

# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt

•git add . :添加文件到暂存区。

git add .gitignore

•git diff:比较文件的不同,即暂存区和工作区的差异。

•git commit:提交更新。

git commit -m [message]

[message] 可以是一些备注信息。

•git rm :删除文件。

python 复制代码
#从暂存区和工作区中删除 1.txt 文件
git rm 1.txt 
#强制删除选项 -f
git rm -f 1.txt 

•git mv :移动或重命名一个文件、目录或软连接。

python 复制代码
git mv [file] [newfile]

3.查看提交历史

•git log :查看历史提交记录。

python 复制代码
git log [选项] [分支名/提交哈希]

常用的选项包括:

|-----------------|-----------------|
| -p | 显示提交的补丁(具体更改内容) |
| --since=<时间> | 只显示指定时间之后的提交 |
| --until=<时间> | 只显示指定时间之前的提交 |
| --author=<作者> | 只显示特定作者的提交 |
| --grep=<模式> | 只显示包含指定模式的提交消息 |

•git blame <file> :以列表形式查看指定文件的历史修改记录。

python 复制代码
git blame [选项] <文件路径>

常用的选项包括:

|--------------------|-----------------------|
| -L <起始行号>,<结束行号> | 只显示指定行号范围内的代码注释 |
| -C | 对于重命名或拷贝的代码行,也进行代码行溯源 |
| -M | 对于移动的代码行,也进行代码行溯源 |
| --show-stats | 显示包含每个作者的行数统计信息 |

三.分支管理

1.创建分支

•创建新分支并切换到该分支

python 复制代码
git checkout -b <branchname>

•切换分支命令

python 复制代码
git checkout (branchname)

•查看分支

python 复制代码
#查看所有分支
git branch
#查看远程分支
git branch -r
#查看所有本地和远程分支
git branch -a

2.合并分支

•将其他分支合并到当前分支。

python 复制代码
git merge <branchname>

•解决合并冲突

当合并过程中出现冲突时,Git 会标记冲突文件,你需要手动解决冲突。

打开冲突文件,按照标记解决冲突。

标记冲突解决完成:

python 复制代码
git add <conflict-file>
#提交合并结果
git commit

•删除分支

python 复制代码
#删除本地分支
git branch -d <branchname>
#强制删除未合并的分支
git branch -D <branchname>
#删除远程分支
git push origin --delete <branchname>

四.远程操作

1.管理 Git 仓库中的远程仓库

•git remote :提供一些用于查看、添加、重命名和删除远程仓库的功能。

|----------------------------------------------|-----------------------------------------|
| git remote | 列出当前仓库中已配置的远程仓库 |
| git remote add <remote_name> <remote_url> | 添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。 |
| git remote rename <old_name> <new_name> | 将已配置的远程仓库重命名 |
| git remote remove <remote_name> | 从当前仓库中删除指定的远程仓库 |
| git remote set-url <remote_name> <new_url> | 修改指定远程仓库的 URL |
| git remote show <remote_name> | 显示指定远程仓库的详细信息,包括 URL 和跟踪分支 |
| git remote -v | 列出当前仓库中已配置的远程仓库,并显示它们的 URL |

2.数据的获取与推送

•git fetch :命令用于从远程获取代码库。

python 复制代码
#想要提取更新的数据
git fetch [alias]
#将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支
git merge [alias]/[branch]

•git pull 命令用于从远程获取代码并合并本地的版本。其实就是 git fetch 和 git merge 的简写,先从远程仓库获取最新的提交记录,然后将这些提交记录合并到你当前的分支中。

python 复制代码
#将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并
git pull origin master:brantest
#如果远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin master

•git push: 命令用于从将本地的分支版本上传到远程并合并。

python 复制代码
git push <远程主机名> <本地分支名>:<远程分支名>

五.标签

下面是1个综合示例,演示如何创建、查看、推送和删除标签。

1.创建轻量标签和附注标签

python 复制代码
git tag v1.0
git tag -a v1.1 -m "runoob.com标签"

2.查看标签和标签信息

python 复制代码
git tag
git show v1.1

3.推送标签到远程仓库

python 复制代码
git push origin v1.0
git push origin v1.1
git push origin --tags  # 推送所有标签

4.删除标签

python 复制代码
#本地删除
git tag -d v1.0
#远程删除
git push origin --delete v1.0
相关推荐
小与哥1 小时前
git 常用命令及问题
git
YRr YRr4 小时前
如何有效管理 GitHub API 的请求速率限制并通过认证令牌提高请求额度:完整指南与代码示例
github
007php0075 小时前
SAAS美容美发系统架构解析
开发语言·python·gpt·golang·系统架构·github·php
Bynine915 小时前
git 清除旧历史提交记录并关联远程仓库
git
weixin_5168756517 小时前
ts 非空断言
git
wayhome在哪1 天前
Git 入门超简单指南
git·github
曼陀罗1 天前
'pnpm-lock.yaml', LF will be repalce by CRLF the next time Git touches it
git
不像程序猿的程序员1 天前
生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
服务器·nginx·github
油泼辣子多加1 天前
2024年11月27日Github流行趋势
github