Git学习-2025-0818
2. git 常用命令命令说明git add添加文件到暂存区git status查看仓库当前的状态显示有变更的文件。git diff比较文件的不同即暂存区和工作区的差异。git difftool使用外部差异工具查看和比较文件的更改。git range-diff比较两个提交范围之间的差异。git commit提交暂存区到本地仓库。git reset回退版本。git rm将文件从暂存区和工作区中删除。git mv移动或重命名工作区文件。git notes添加注释。git checkout分支切换。git switchGit 2.23 版本引入更清晰地切换分支。git restoreGit 2.23 版本引入恢复或撤销文件的更改。git show显示 Git 对象的详细信息。在 Git 中git checkout -b 目标分支 origin/目标分支 这个命令用于从远程仓库的特定分支创建一个新的本地分支并切换到该新分支上。这个命令实际上是两个 Git 命令的组合1. git checkout -b 目标分支创建并切换到一个新分支。2. git branch 目标分支 origin/目标分支将远程分支设置为新创建的本地分支的上游tracking branch。git checkout -b 目标分支 origin/目标分支这里的 目标分支 是你想要创建和切换到的本地分支的名称而 origin/目标分支 是远程仓库中对应的分支名称。这个命令的意思是- 从远程仓库的 origin/目标分支 分支检出checkout一个新的本地分支。- 创建一个新的本地分支并命名为 目标分支。- 设置新创建的本地分支跟踪远程的 origin/目标分支 分支。执行这个命令后你将会在本地有一个新分支并且这个分支会自动设置为跟踪远程仓库中的对应分支。这样当你在本地分支上进行提交时可以通过 git push 将更改推送到远程分支也可以通过 git pull 从远程分支拉取最新的更改。提交日志命令说明git log查看历史提交记录git blame file以列表形式查看指定文件的历史修改记录git shortlog生成简洁的提交日志摘要git describe生成一个可读的字符串该字符串基于 Git 的标签系统来描述当前的提交远程操作命令说明git remote远程仓库操作git fetch从远程获取代码库git pull下载远程代码并合并git push上传远程代码并合并git submodule管理包含其他 Git 仓库的项目3. 分支管理Git 分支管理是 Git 强大功能之一能够让多个开发人员并行工作开发新功能、修复 bug 或进行实验而不会影响主代码库。几乎每一种版本控制系统都以某种形式支持分支一个分支代表一条独立的开发线。使用分支意味着你可以从开发主线上分离开来然后在不影响主线的同时继续工作。创建分支创建新分支并切换到该分支git checkout -b branchname例如git checkout -b feature-xyz切换分支命令:git checkout (branchname)例如git checkout main当你切换分支的时候Git 会用该分支的最后提交的快照替换你的工作目录的内容 所以多个分支不需要多个目录。查看分支查看所有分支git branch查看远程分支git branch -r查看所有本地和远程分支git branch -a合并分支将其他分支合并到当前分支git merge branchname例如切换到 main 分支并合并 feature-xyz 分支git checkout main git merge feature-xyz解决合并冲突当合并过程中出现冲突时Git 会标记冲突文件你需要手动解决冲突。打开冲突文件按照标记解决冲突。标记冲突解决完成git add conflict-file提交合并结果git commit删除分支删除本地分支git branch -d branchname强制删除未合并的分支git branch -D branchname删除远程分支git push origin --delete branchname什么时候必须 Pull情况是否需要 Pull原因Push 前✅ 推荐确保没有其他人推送了新代码避免 Push 被拒绝。Push 被拒绝✅ 必须错误信息如non-fast-forward说明远程有你本地没有的提交。开始新工作前✅ 必须确保基于最新代码开发减少后续冲突。刚 Commit 完准备 Push❌ 不一定如果确定没人动过该分支可直接 Push否则先 Pull 更安全。二、在IDEA中使用Git安装好IntelliJ IDEA后如果Git安装在默认路径下那么idea会自动找到git的位置如果更改了Git的安装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口找到Version Control下的git选项从远程仓库clone项目创建分支以某个分支为基础创建分支提交变更代码push至远程仓库Merge分支git checkout -- **file 丢弃工作区的修改注当你改乱了⼯工作区某个⽂文件的内容想直接丢弃⼯工作区的修改时⽤用命令git checkout -- file。git diff HEAD查看修改的内容git reset HEAD^回滚到上个版本注当你不小心改错了某个文件的内容还添加到暂存区是想丢弃修改分两步第一步git reset HEAD file就回到原来git rm file删除文件注工作区删除了文件暂存区没有导致两边不一致这时候有两种方式通过命令git rm 删除掉通过命令git checkout --file替换工作区的版本git push把当前暂存区代码推送到远程分支上注git push origin master 将代码推送master上git clone git的地址 克隆代码到本地Git⿎励⼤量使⽤分⽀:查看分⽀支:git branch创建分⽀支:git branch name切换分⽀支:git checkout name创建切换分⽀支:git checkout -b name合并某分⽀支到当前分⽀支:git merge name删除分⽀支:git branch -d name如何回退到历史版本进行大量修改和多次commit之后发现改错了(特别是误删除了某些重要文件)Q如何回退到历史上的某个版本A:git-reset不小心回退多了开发过程中偶尔会用回退操作Q不小心回滚多了代码还能找回吗Agit-reflog git-resetcommit 到了错误的分支上本应该在A分支上进行开发的结果因为操作失误把新增/修改的代码提交到了B分支上Q不想重写一遍代码怎么办Agit-cherry-pick合并了别人的分支又不想要了在开发过程中合并另一个分支到自己的开发分支是不可避免的如果不小心合错了分支然后又进行了多次代码修改并commitQ我的分支还有救吗Agit-rebasepush之前想撤回提交的代码该怎么办如果只是想撤回上个版本可以使用git reset --soft HEAD^如果是想撤回指定版本可以先用git log查看版本号id 可以使用git reset --soft 版本号撤销 commit 提交执行 git log 查看需要撤销的commit的前面一个提交版本的id执行 git reset --hard commit_id 该commit_id为需要撤销的commit的提交的前面一个提交的版本即需要恢复到的提交的id重置至指定版本的提交达到撤销提交的目的执行 git log 查看提交日志commit提交已撤销要获取最新 master 代码// 1. 先更新本地 mastergit checkout mastergit pull origin master// 2. 再切换到 test 分支进行合并git checkout testgit merge master// 或者直接在 test 分支上git merge origin/master // 直接合并远程 master