Git命令

Git是一个强大的分布式版本控制系统,用于管理和跟踪项目变更。本文介绍了Git的基本命令,如初始化、提交、回滚和分支操作。在使用IDEA进行分支切换时,需注意ForceCheckout可能会导致未保存的修改丢失,而SmartCheckout则会通过stash保存并恢复这些修改。

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

Git
介绍:Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
官网地址:https://git-scm.com/
常用命令:

git config user.name   //查看当前登录用户
git config --global --edit  //修改Git的配置文件
[user]
    name = Your Name
    email = your.email@example.com
git config user.name “Your Name”  //将”Your Name”替换为新的用户名。
git config  --global  user.name “Your Name”  //全局将”Your Name”替换为新的用户名。
git remote -v   //显示当前仓库的URL
git remote set-url origin newurl      //将”newurl”替换为新的远程仓库URL

**git的基本框架组成是由 WorkSpace(本地工作区)、Index/Stage(暂存区/缓存区)、Repository(本地仓库)、Remote(远程仓库)。**
git  init  //初始化本地库,在本地生成一个隐藏的.git文件夹
git status     // 查看状态
git  add  文件   //将文件加入到缓冲区
git commit -m " 第一次提交"  文件  //将文件提交到本地库
git  reflog   //查看提交记录
git  log   //查看提交详细记录
git rm --cached  文件   // 将文件从缓冲区删除
 git reset --hard    指针id  //  回滚到指针id对应的版本 
 git branch  -v  //查看分支
 git branch 分支名  // 创建分支
 git  checkout  分支名  // 切换分支 
 git  merge        分支1  // 将分支1合并到当前分支上
 git  clone   远程仓库地址  //  将远程仓库克隆到本地分支
 git pull   远程仓库地址   远程分支名  // 将远程仓库的远程分支拉取到当前分支
 git pull 远程仓库地址  <远程分支名>:<本地分支名>  // 将远程分支拉取到本地分支
 git push  远程仓库地址  本地分支名   // 将本地分支推送到远程仓库的和本地分支同名分支      
 git push 远程仓库地址 <本地分支名>:<远程分支名>   //本地分支推送到远程分支上 

idea进行分支切换注意事项:本地工作空间(分支A)有些文件会被分支B改动,IDEA会弹出对话框,让你选择Force Checkout 或 Smart Checkout;
如果选择Force Checkout, 本地工作空间(分支A)的一些未提交的修改会被覆盖(被分支B覆盖),会有很大可能丢代码!!!
如果选择Smart Checkout,IDEA会先执行stash命令,贮存这些未提交的修改,然后checkout 到分支B,在切换到分支B后,unstash 这些修改,所以A分支本地的这些修改会带到B分支上

1.命令git cherry-pick可以把branch A的commit复制到branch B上。
复制单个提交:git cherry-pick commitId
复制多个提交:git cherry-pick commitId1…commitId3

2.要将 N 次提交压缩成一次提交,可以使用交互式 rebase 来合并提交。以下是具体步骤:
打开终端,进入你的Git仓库所在的目录。
运行以下命令以启动交互式 rebase:
git rebase -i HEAD~N
其中,N 是你想要压缩的提交数量。
这将打开一个交互式界面,显示最近的N个提交。在每个提交的前面,你会看到一个单词,比如 “pick”,表示保留该提交。将你想要合并的提交前的单词改成 “squash” 或 “s”,表示将该提交与前一个提交合并。
保存并关闭编辑器,Git 将会合并你选择的提交。

3.git branch --merged master 列出已经合并到当前分支(比如 master)中的所有分支
git branch --no-merged master 找出哪些分支还没有被合并到 master 分支中
4. 要在提交之前运行代码静态检查工具,并在测试失败时阻止提交,你可以使用 Git 钩子(hooks)来实现

5.SubGit 是将 SVN 到 Git迁移的工具,(相互的)

6.当你运行 git merge 时,Git 会创建一个新的合并提交,将指定分支的更改合并到当前分支。这个合并提交会将两个分支的更改合并在一起,并且保留了两个分支的历史记录。
当你运行 git rebase 时,Git 会将当前分支的提交**“挪动”到目标分支**的最新提交之后。这样做会创建一系列新的提交,其基本原理是将当前分支的更改“重放”在目标分支之上

7.要找到特定提交中已更改的文件列表,可以使用以下命令:
git diff --name-only -name-only 只会打印文件名而不是它们
的路径。

在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e2145a2660745bebfb20fefff75dc60.png

在这里插入图片描述
在这里插入图片描述
介绍
git reset 命令格式为:
git reset [ --soft | --mixed | --hard ] [< commitid >]
在git的这些命令中git reset是最长常用的,也是最危险的最容易被误用的。它的主要参数是:soft,mixed,hard它们告诉git,当执行reset是,要对index和working copy做什么。

参数
soft:
–soft参数只将其它的commit重置到你选定的HEAD,index和working copy中的数据不变。(本地仓库被回退了)
mixed:
–mixed参数是将HEAD和index重置到你选定的HEAD,而working copy不变。(本地仓库和暂存区被回退了)
hard:
–hard是将HEAD,index,working copy同时改变到你规定的commit上。(本地仓库和暂存区和工作区被回退了)

commit 已经push
回退的方式同上,执行完上面指定命令后 可以看到,但是线上代码还没回退
此时如果你push,会提示:
在这里插入图片描述
点击merge就又回去了,完全没退回去。
此时应该执行:
有可能会让你输入用户名、密码。
git push --force
这样远程代码也就被回退了。

evert是只撤回指定的提交,并保留后续的提交。
git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。
使用“git push”推上远程库:

在这里插入图片描述

在这里插入图片描述

Untracked Files Prevent CheckoutMove or commit them before checkaut
在 Git 中,如果遇到“未跟踪的文件阻止检出”的问题,可以按照以下方法进行处理:

  1. 提交更改:如果你希望保留未跟踪的文件并且它们准备好了,可以将它们添加到暂存区并进行提交:
git add .  
git commit -m "提交未跟踪的文件"
  1. 暂存更改:如果你想暂时保留未跟踪的文件,可以使用 git stash 命令。需要注意的是,默认情况下 git stash 不会存储未跟踪的文件,因此你可以使用以下命令:
git stash -u
  1. 删除或忽略未跟踪的文件:如果未跟踪的文件不需要,可以使用下面的命令删除它们(注意这将永久删除未跟踪的文件):
git clean -f

如果还有未跟踪的目录,可以执行:

git clean -fd

另外,如果你希望保留这些文件并使其不干扰 Git 的操作,可以将它们添加到 .gitignore 文件中。

  1. 强制检出:如果你确定要强制检出(不推荐,因为可能会导致丢失更改),可以使用:
 git checkout -f <分支名称>
<think>好的,我现在需要帮助用户了解Git命令的使用教程和常见命令列表。首先,用户提到想学习Git命令的用法,可能需要基础命令的介绍和一些实际例子。根据用户提供的引用内容,我应该优先包含git config、git add、git commitgit push这些基本命令,因为这些在引用中都有提到。特别是引用1详细介绍了git config和git add的使用,引用3提到了git push的简化操作。 接下来,我需要确保结构清晰,按照用户的要求分步骤讲解。可能的结构是:安装配置、基本工作流程、分支管理、远程仓库操作、其他常用命令。每个部分下给出具体的命令和示例,比如在配置部分,引用1和引用2都提到了git config的使用,包括设置用户名、邮箱和查看配置列表,这些都需要包含进去。 另外,用户示例中的Python代码块提醒我需要用代码块格式展示Git命令,但注意用户的问题是关于Git的,所以应该用命令行代码块,如```bash。同时,需要检查LaTeX格式是否正确,不过这个问题中可能用到的数学公式不多,但如果有的话,比如在解释某些概念时,可能需要使用行内公式,比如$ git add $这样的变量?不过Git命令本身不需要数学公式,所以可能不用,但需要留意系统指令中的要求。 用户还要求生成相关问题,我需要根据内容提出相关问题,比如如何撤销提交、分支管理策略等,这些是用户可能进一步想了解的。 需要确保引用的正确使用,每个引用对应的内容要准确。例如,引用1提到git add .,引用3提到git push -u origin master,这些都要在相应部分标注引用标识。同时,用户提供的引用中没有提到git commitgit status等命令,但这些属于常见命令,可能需要补充,但因为没有引用来源,可能需要避免引用标记,或者如果用户提供的引用中确实没有,可能需要不标注引用,但根据用户给出的引用,只能使用现有的三个引用。 不过,用户提供的引用中,引用1提到了git config和git add,引用2是git config --list,引用3是git push。所以当提到这些特定命令时,添加对应的引用标记,其他命令git commitgit status可能没有引用来源,就不添加引用标识。 最后,生成的相关问题应该围绕Git的进一步学习,比如配置管理、撤销操作、分支合并冲突解决、.gitignore文件使用等,这些都是用户可能感兴趣的点。 现在开始组织内容: 1. 安装与配置:根据引用1和2,介绍git config设置用户信息,查看配置。 2. 基本工作流程:git init, git add(引用1), git commit, git status, git log。 3. 分支管理:git branch, git checkout, git merge。 4. 远程仓库:git remote add, git push(引用3), git pull。 5. 其他命令git clone, .gitignore, git reset(可能没有引用来源,但常见)。 在写作时,确保每个命令的示例正确,比如git add . 来自引用1,要标注[^1]。git config --list来自引用2,标注[^2]。git push -u来自引用3,标注[^3]。 可能还需要检查是否有其他命令在引用中提到,但根据提供的三个引用,主要涉及config、add、push。因此,其他命令可能没有引用来源,但用户的问题需要常见命令列表,所以必须包含,但引用标记只用在对应的部分。 最后生成相关问题,如如何撤销提交、解决合并冲突、配置忽略文件等。</think>### Git 常用命令使用教程 Git 是分布式版本控制系统,以下是基础命令和常见用法: --- #### 一、安装与配置 1. **配置用户信息**(提交时标识身份) ```bash git config --global user.name "你的用户名" git config --global user.email "你的邮箱" ``` 此配置会保存在全局文件(如 `~/.gitconfig`)。 2. **查看当前配置** ```bash git config --list ``` 可检查所有生效的配置项。 --- #### 二、基本工作流程 1. **初始化仓库** ```bash git init ``` 2. **添加文件到暂存区** ```bash git add <文件名> # 添加单个文件 git add . # 添加所有修改和新文件 ``` 3. **提交更改** ```bash git commit -m "提交说明" ``` 4. **查看状态与日志** ```bash git status # 查看工作区和暂存区状态 git log # 查看提交历史 ``` --- #### 三、分支管理 1. **创建与切换分支** ```bash git branch <分支名> # 创建分支 git checkout <分支名> # 切换分支 git checkout -b <分支名> # 创建并切换 ``` 2. **合并分支** ```bash git merge <目标分支> ``` --- #### 四、远程仓库操作 1. **关联远程仓库** ```bash git remote add origin <仓库URL> ``` 2. **推送代码** ```bash git push -u origin master # 首次推送需指定分支[^3] git push # 后续推送可简化 ``` 3. **拉取更新** ```bash git pull origin master ``` --- #### 五、其他常用命令 | 命令 | 用途 | |------|------| | `git clone <仓库URL>` | 克隆远程仓库到本地 | | `git reset <文件>` | 撤销暂存区的修改 | | `git diff` | 查看文件差异 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值