Git基本命令

itmahy
itmahy
发布于 2024-01-18 / 141 阅读
0
0

Git基本命令

Git

  1. 版本控制:Git可以跟踪文件的变化,记录每次修改,以便将来可以回溯到任何一个版本。

  2. 协作:多人可以同时在同一个项目上工作,Git可以帮助管理不同人的修改,并协调合并这些修改。

  3. 备份:Git可以将项目的完整历史记录保存在本地,也可以通过远程仓库进行备份,确保项目的安全性。

  4. 分支管理:Git支持创建、合并和删除分支,这使得开发者可以在不影响主线的情况下进行独立的开发工作。

  5. 追踪变更:Git可以精确地追踪文件的变更,包括新增、修改、删除等操作。

安装

Windows系统

  1. 访问Git官网:https://git-scm.com/

  2. 在页面中找到并点击“Download for Windows”按钮

  3. 下载完成后,双击下载的安装程序进行安装

  4. 在安装过程中,按照默认设置进行安装即可

macOS系统

  1. 访问Git官网:https://git-scm.com/

  2. 在页面中找到并点击“Download for macOS”按钮

  3. 下载完成后,双击下载的安装程序进行安装

  4. 在安装过程中,按照默认设置进行安装即可

Linux系统

  • 对于大多数Linux发行版,可以通过包管理器进行安装。例如,在Ubuntu上可以使用以下命令进行安装:

    sudo apt-get update
    sudo apt-get install git

安装完成后,你可以在命令行中输入git --version来验证Git是否成功安装

常用操作

设置用户签名以及查看git版本

  • 查看Git版本

git --version
  • 设置用户签名

# 设置用户名
git config --global user.name [username]
# 设置用户Email
git config --global user.email [email]
  • 生成密钥

# 生成的密钥存放在C:\Users\用户名称\.ssh目录下
ssh-keygen -t rsa -C [email]
  • 查看本地全局用户配置信息

git config --global --list
  • 查看此工作空间的用户配置信息

git config user.name
git cofnig user.email
  • 实操 打开Git Bash输入命令

初始化仓库

# 当前目录初始化
git init
# 可以初始化指定的目录
git init [目录]

添加到缓存区

  • 批量添加文件到缓存区

git add .
  • 指定一个或多个文件添加到缓存区

git add [文件名称1] [文件名称2] ....
  • 添加目录到缓存区,包括子目录

git add [目录]

查看状态

# 输出详细结果
git status
# 输出简短结果
git status -s 

删除

  • 后面可跟参数或不跟参数,建议不要用,很危险的操作,会删除本地文件,当然,可以使用版本切换切换到删除前的版本。

git rm
  • 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f [文件名称]
  • 删除缓存区的文件

git rm --cached [文件名称]
# 注意:如果文件只是从工作空间添加到缓存区,是可以删除的,如果已经从缓存区提交到本地库之后,就不能删除了。
  • 将文件从暂存区撤出,但不会撤销文件的更改,类似于 git rm --cached [文件名称] 命令

git restore --staged [文件名称]
  • 将不在暂存区的文件撤销更改,意思是撤销掉你的上次操作,恢复文件

git restore [文件名称]

提交到本地库

  • 直接提交

git commit -m "提交说明信息"
  • 打开vim编辑器,写入提交说明信息之后保存自动提交

git commit
  • 从暂存区提交某个文件到本地库

git commit -m "提交说明信息" [文件名称]
# 注意:如果是合并分支的时候,不能在后面跟文件名称,否则会报错。
  • 修改文件之后,不需要git add .,直接提交到本地库,会进入vim编辑提交信息

git commit -a
  • 修改文件之后,不需要git add .,直接提交到本地库,不会进入vim编辑提交信息

git commit -am "提交说明信息"

查看历史记录

  • 查看缩减信息

git reflog

HEAD -> master 说明是当前版本为 e3371c8 这个版本,并且分支为master,例如:

  • 查看全量信息

git log
  • 以列表形式查看指定文件的历史修改记录

git blame [文件名称]
  • 查看历史记录的简洁的版本

git log --oneline
  • 查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选

git log --graph
  • 逆向并简洁的显示所有日志

git log --reverse --oneline
  • 查找指定用户的提交日志

git log --auther=[作者名称]
  • 查看到未传送到远程代码库的提交详情

git log master ^origin/master
  • 查看已提交但是未推送的说明

git cherry -v

版本切换,穿梭

git reset --hard [版本号]

分支操作

  • 创建分支

git branch [分支名]
  • 查看远程所有分支

git branch -r
  • 查看远程和本地所有分支

git branch -a
  • 查看分支,两个命令都能查看,只不过git branch -v 可以查看详细信息

git branch -v 

git branch

  • 切换分支

git checkout [分支名]
  • 新建并切换到新分支

git checkout -b [分支名]
  • 创建本地分支并切换到此分支,并且拉取远程分支的代码

git checkout -b [分支名] [远程连接别名]/[远程分支名]
  • 删除本地分支

git branch -d [分支名]
  • 强制将当前分支的名称修改为 [分支名]

git branch -M [分支名]
  • 删除远程分支

git push [别名] --delete [远程分支名]
  • 提交远程分支

git push origin :[远程分支名]
  • 本地当前分支跟远程分支关联

git push --set-upstream [别名] [分支名称]

分支合并

git merge [分支名]

将指定的分支合并到当前分支上,如果文件冲突了,下面是解决方法:

  1. 查看合并分支的日志,如果冲突,在会显示具体的冲突文件,并且在分支名称后面有 MERGEING 的提示

2.解决冲突 HEAD到=====这个区域是当前分支的内容,=====到 ]]]]]]]hot-fix这个区域是被合并分支的内容

3. 删除标识符跟冲突的代码,使用wq保存。 4. 保存完成之后,使用git status 查看状态

5. git add . 添加到暂存区 6. git commit -m "merge hot-fix" 注意:这个不能在后面添加文件名称,否则会报错 7. 合并完成。

远程操作

  • 查看别名

# 别名:每次使用远程仓库地址很麻烦,就可以起个别名
git remote -v
  • 显示某个远程仓库的信息

git remote show [url]
  • 添加别名

git remote add [别名] [远程仓库地址]

  • 推送代码到远程仓库,这个也可以推送新建的空分支,但是后续不能直接使用git push推送代码,因为本地分支没有跟远程分支进行关联

git push [别名] [分支名称]
  • 推送代码到远程仓库,这个也可以推送新建的空分支,后续可以直接使用git push推送代码

git push -u [别名] [分支名称]
  • 不是第一次推送代码到远程仓库,如果使用这个命令,必须要先关联远程分支 执行
    git push --set-upstream [别名] [分支名称]

git push
  • 拉取

git pull [别名] [远程分支名]:[本地分支名]
# 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。如果远程分支是与当前分支合并,则冒号后面的部分可以省略。如 git pull origin master
git pull origin master:brantest
  • 命令用于从远程获取代码库。这个需要单独搜索

git fetch

生成连接RSA密钥

# 生成的密钥存放在C:\Users\用户名称\.ssh目录下
ssh-keygen -t rsa -C "email"

git 中一些选项解释

  • -d --delete:删除

  • -D --delete --force的快捷键

  • -f --force:强制

  • -m --move:移动或重命名

  • -M --move --force的快捷键

  • -r --remote:远程

  • -a --all:所有

比较文件不同

  • 尚未缓存的改动,显示暂存区和工作区的差异

git diff [文件名称]
  • 显示暂存区和上一次提交(commit)的差异:

git diff --cached [文件名称] 或者 git diff --staged [文件名称]
  • 查看已缓存的与未缓存的所有改动

git diff HEAD
  • 显示摘要而非整个 diff

git diff --stat

移动或者重命名文件

git mv [旧文件名称] [新文件名称]
# 如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数
git mv -f [旧文件名称] [新文件名称]

标签

git tag -a [标签名eg: v1.0]
git tag
git show [标签名称]

提交规范

示例:

feat(测试模块): 一段测试信息

一段详细的测试信息


评论