Git的常用命令及常见问题处理方法

news/2025/2/15 4:28:00/

目录

  • 一、介绍
  • 二、常用 Git 命令
    • 1. 配置用户信息
    • 2. 初始化仓库
    • 3. 克隆远程仓库
    • 4. 查看状态
    • 5. 添加文件到暂存区
    • 6. 提交更改
    • 7. 查看提交历史
    • 8. 查看文件差异
    • 9. 查看分支
    • 10. 切换分支
    • 11. 合并分支
    • 12. 处理冲突
    • 13. 远程操作
    • 14. 标签管理
    • 15. 撤销操作
  • 三、常见问题处理方法
    • 1. 无法推送到远程仓库
    • 2. 分支丢失
    • 3. 文件被错误地添加到暂存区
    • 4. 回到之前的提交
    • 5. 忘记暂存文件
    • 6. 提交信息错误
    • 7. 删除远程分支
    • 8. 文件冲突解决后无法提交

一、介绍

Git 是一个分布式版本控制系统,以下是一些常用的 Git 命令及其使用方法:

二、常用 Git 命令

1. 配置用户信息

git config --global user.name "Your Name"          # 配置全局用户名
git config --global user.email "your@email.com"    # 配置全局邮箱

2. 初始化仓库

git init                     # 初始化一个空的 Git 仓库

3. 克隆远程仓库

git clone <repository-url>                         # 克隆远程仓库到本地

4. 查看状态

git status                                         # 查看当前工作目录的状态

5. 添加文件到暂存区

git add <file>                                     # 添加指定文件到暂存区
git add .                                          # 添加所有文件到暂存区

6. 提交更改

git commit -m "Commit message"                     # 提交暂存区的更改,并添加提交信息
git commit -am "Commit message"                    # 一次性提交所有已跟踪文件的更改

7. 查看提交历史

git log                                            # 查看提交历史
git log --oneline                                  # 简要查看提交历史
git log --author="Your Name"                       # 查看特定用户的提交历史

8. 查看文件差异

git diff                                               # 查看工作目录与暂存区之间的差异
git diff --staged                                      # 查看暂存区与上一次提交之间的差异
git diff <commit1> <commit2>                           # 比较两个提交之间的差异

9. 查看分支

git branch                                          # 列出所有本地分支
git branch -a                                       # 列出所有本地和远程分支
git branch <branch-name>                            # 创建新分支
git branch -d <branch-name>                         # 删除本地分支
git branch -D <branch-name>                         # 强制删除本地分支

10. 切换分支

git checkout <branch-name>                          # 切换到指定分支
git checkout -b <branch-name>                       # 创建并切换到新分支
git checkout -- <file>                              # 恢复文件到最近一次提交的状态

11. 合并分支

git merge <branch-name>                             # 合并指定分支到当前分支

12. 处理冲突

在合并或重新合并过程中,若出现冲突,Git 会在冲突文件中用以下标记来显示冲突:

<<<<<<< HEAD
... 冲突内容 ...
=======
... 冲突内容 ...
>>>>>>> branch-name

解决冲突后,使用以下命令提交更改:

git add <file>
git commit -m "Resolved merge conflict"

13. 远程操作

git remote -v                                       # 查看远程仓库地址
git fetch                                           # 获取远程仓库的更新但不合并
git pull                                            # 获取远程更新并合并到当前分支
git push                                            # 将本地提交推送到远程仓库
git push origin <branch-name>                       # 推送本地分支到远程仓库

14. 标签管理

git tag                                             # 列出所有标签
git tag <tag-name>                                  # 创建新标签
git tag -a <tag-name> -m "Tag message"              # 创建带注释的标签
git push origin <tag-name>                          # 推送标签到远程仓库

15. 撤销操作

git reset --hard HEAD                               # 撤销工作目录和暂存区的所有更改
git reset HEAD <file>                               # 将文件从暂存区移除但保留工作目录的更改
git revert <commit>                                 # 创建一个新的提交来撤销指定提交的更改

三、常见问题处理方法

1. 无法推送到远程仓库

#可能是因为远程分支的HEAD指向了非引用,或者远程仓库拒绝更新

git push --set-upstream origin <branch-name>        # 设置上游分支
git pull origin <branch-name>                       # 拉取远程更新
git push origin <branch-name>                       # 再次尝试推送

2. 分支丢失

可能是因为分支被删除或覆盖

git reflog                             # 查看 Git 引用日志
git checkout <commit-hash>             # 切换到指定的提交
git branch <branch-name>               # 创建新分支

3. 文件被错误地添加到暂存区

git reset HEAD <file>                               # 取消暂存单个文件
git reset HEAD                                      # 取消暂存所有文件

4. 回到之前的提交

git checkout <commit-hash>                          # 切换到指定的提交
git checkout -b <branch-name>                       # 创建新分支
git reset --hard <commit-hash>                      # 强制重置当前分支到指定提交

5. 忘记暂存文件

git add <file>                                      # 添加文件到暂存区
git commit --amend                                  # 修改最后一次提交

6. 提交信息错误

git commit --amend -m "Corrected commit message"    # 修改最后一次提交的信息

7. 删除远程分支

git push origin --delete <branch-name>              # 删除远程分支

8. 文件冲突解决后无法提交

git add <file>                                      # 添加解决冲突后的文件
git commit -m "Resolved conflict"                   # 提交更改

http://www.ppmy.cn/news/1572146.html

相关文章

排序算法大合集

排序算法大合集 翻了翻很久以前写的算法报告,现在整理一下。 由难度从简单到难排序。 桶排序、冒泡排序、选择排序、快速排序。 最简单粗暴——桶排序 (一)桶排序原理 桶排序,是一个目前速度最快的一种排序 基本思想是将无序列数依次装进一个按元素名命名数组中 最后…

【Linux】【网络】IO多路复用 select、poll、epoll

【Linux】【网络】IO多路复用 select、poll、epoll IO 多路复用 进程或线程同时监控多个文件描述符&#xff0c;查看描述符上是否有事件发生&#xff0c;从而提高资源利用率和系统吞吐量。 1. select int select(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *exc…

【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)

前言 前段时间发现了一个很喜欢的视频,可惜网站不让下载,简单看了一下视频是被切片成m4s格式的流文件,初步想法是将所有的流文件下载下来然后使用ffmpeg合并成一个完整的mp4,于是写了一段脚本来实现一下,电脑没有配python环境,所以使用JavaScript实现,合并功能需要安装ffmpeg,…

算法-整理图书,反转链表数据返回

力扣题目&#xff1a;LCR 123. 图书整理 I - 力扣&#xff08;LeetCode&#xff09; 书店店员有一张链表形式的书单&#xff0c;每个节点代表一本书&#xff0c;节点中的值表示书的编号。为更方便整理书架&#xff0c;店员需要将书单倒过来排列&#xff0c;就可以从最后一本书…

Go语言的内存分配原理

Go语言的内存分配原理 Go语言的内存管理分为两个主要区域&#xff1a;栈&#xff08;Stack&#xff09; 和 堆&#xff08;Heap&#xff09;。理解这两个区域的工作原理&#xff0c;可以帮助你写出更高效的代码&#xff0c;并避免一些常见的性能问题。 1. 栈&#xff08;Stac…

《通过DINO语义引导进行可变形单次人脸风格化》学习笔记

paper:2403.00459 GitHub&#xff1a;zichongc/DoesFS: [CVPR 24] Official repository for Deformable One-shot Face Stylization via DINO Semantic Guidance 目录 摘要 1、介绍 2、相关工作 2.1 人脸风格化 2.2 ViT特征表示 3、方法 3.1 预备知识 3.2 框架 3.3 …

Elasticvue使用总结

用了好多es的可视化客户端&#xff0c;但平时用的最多的是Elasticvue这个浏览器插件。总结一下使用教程。 连接 首页大盘 说明&#xff1a; 节点情况&#xff1a;一共三个节点&#xff0c;三个节点既是master节点又是data节点。&#xff08;一个节点可以既是master又是data&a…

蓝桥杯篇---串行EEPROM AT24C02

文章目录 前言1. 写字节时序&#xff08;Byte Write&#xff09;特点时序步骤1.起始条件&#xff08;Start Condition&#xff09;2.发送设备地址&#xff08;Device Address&#xff09;3.发送内存地址&#xff08;Word Address&#xff09;4.发送数据&#xff08;Data&#x…