【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 [email protected]

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

•查看配置信息

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

复制代码
$ git config --list
user.name=Scott Chacon
[email protected]
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 \ :以列表形式查看指定文件的历史修改记录。 ```python git blame [选项] <文件路径> ``` 常用的选项包括: |--------------------|-----------------------| | `-L <起始行号>,<结束行号>` | 只显示指定行号范围内的代码注释 | | `-C` | 对于重命名或拷贝的代码行,也进行代码行溯源 | | `-M` | 对于移动的代码行,也进行代码行溯源 | | `--show-stats` | 显示包含每个作者的行数统计信息 | ## 三.分支管理 ### ![](https://i-blog.csdnimg.cn/direct/5601b1f886bc4b4693762448791aaaff.png) ### 1.创建分支 •创建新分支并切换到该分支 ```python git checkout -b ``` •切换分支命令 ```python git checkout (branchname) ``` •查看分支 ```python #查看所有分支 git branch #查看远程分支 git branch -r #查看所有本地和远程分支 git branch -a ``` ### 2.合并分支 •将其他分支合并到当前分支。 ```python git merge ``` •解决合并冲突 当合并过程中出现冲突时,Git 会标记冲突文件,你需要手动解决冲突。 打开冲突文件,按照标记解决冲突。 标记冲突解决完成: ```python git add #提交合并结果 git commit ``` •删除分支 ```python #删除本地分支 git branch -d #强制删除未合并的分支 git branch -D #删除远程分支 git push origin --delete ``` ## 四.远程操作 ### 1.管理 Git 仓库中的远程仓库 •git remote :提供一些用于查看、添加、重命名和删除远程仓库的功能。 |----------------------------------------------|-----------------------------------------| | `git remote` | 列出当前仓库中已配置的远程仓库 | | `git remote add ` | 添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。 | | `git remote rename ` | 将已配置的远程仓库重命名 | | `git remote remove ` | 从当前仓库中删除指定的远程仓库 | | `git remote set-url ` | 修改指定远程仓库的 URL | | `git remote show ` | 显示指定远程仓库的详细信息,包括 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 ```

相关推荐
星星火柴9362 小时前
Git 学习笔记
笔记·git·学习
Sherry Wangs2 小时前
GitHub实用手册
github
uhakadotcom3 小时前
PyTorch 2.0:最全入门指南,轻松理解新特性和实用案例
后端·面试·github
jstart千语3 小时前
【版本控制】git命令使用大全
java·git
LTPP3 小时前
掌握Rust Web开发的未来:Hyperlane框架全方位教程 🎓🔧
前端·后端·github
uhakadotcom4 小时前
Apache APISIX入门指南:快速理解与实战示例
后端·面试·github
Gladiator5755 小时前
博客记录-day144-力扣
github
小七_雪球5 小时前
10分钟搞定Vite项目部署:从开发到上线(GitHub Pages+Vercel)全流程
vue.js·github
敖行客 Allthinker5 小时前
GitHub 封禁中国 IP:影响、原因及应对
网络协议·tcp/ip·github
小七_雪球6 小时前
Permission denied"如何解决?详解GitHub SSH密钥认证流程
前端·github