Git常用命令总结(不断更新)

说明:
1、本文简单总结自己目前工作中曾使用到的Git命令,比较简略,仅为方便查找自己常用Git命令;
2、本文中的大部分命令主要参考廖雪峰老师的Git教程(https://www.liaoxuefeng.com/wiki/896043488029600),希望详细学习的请移步;
3、剩余的命令为自己工作中需要用到时而自行查找并验证的命令;

【1】Git原理图

在这里插入图片描述

【2】准备项目

【2.1】配置Git仓库

【2.1.1】配置

  • 对本地所有仓库配置
git config --global user.name "用户名"
git config --global user.email "邮箱"
  • 对本地单个仓库配置
git config user.name "用户名"
git config user.email "邮箱"

用户名”和“邮箱”:
1、是必须的,提交时作为提交人的信息;
2、理论上可以随便填写,但最好使用目标GitHub或其他远程库的账户信息(这样提交commit的用户会与远程库用户关联起来);
3、“用户名”和“邮箱”任意一个变化时,本地仓库commit记录便认为与之前提交人是不同的用户;
4、“用户名”变化,但“邮箱”没变时,远程仓库认为与之前提交人是相同用户,但反之则认为是不同用户;

【2.1.2】删除配置

  • 删除对本地所有仓库配置
git config --global --unset user.name "用户名"
git config --global --unset user.email "邮箱"
  • 删除对本地单个仓库配置
git config --unset user.name "用户名"
git config --unset user.email "邮箱"

【2.1.3】查看配置

git config --list			//按“q”可退出

1、在非Git仓库路径下,执行此命令,只显示global配置的“用户名”和“邮箱”;
2、在Git仓库路径下,执行此命令,global配置的“用户名”和“邮箱”显示在上,本仓库的配置显示在下(如果有);

【2.2】用Git管理项目(建仓库)

【Step1】在要生成.git文件夹的目录下,右键打开Git Bash
【Step2】git init			//此时创建了master分支

【2.3】远程仓库操作

  • 现有项目上传远程仓库
【Step1】在GitHub创建一个新的仓库
【Step2】git remote add origin <仓库地址>     //建立与远程库的关联,origin为在本地代表远程仓库的名字,可以使用其他名字
【Step3】git push -u origin master		     //推送master分支到远程库(在远程库创建master分支),-u用于指定origin为默认远程库并建立本地master分支和远程master分支的追踪关系(这样后面在push master分支的提交时可直接使用git push命令)
  • 从远程仓库克隆
git clone <仓库地址>			//在目标文件夹下打开Git Bash,直接执行此命令即可

【3】操作分支

【3.1】查看所有分支

git branch

输出:
在这里插入图片描述

develop前的*表示:develop为当前所在分支

【3.2】切换分支

git checkout <分支名>
或
git switch <分支名>

【3.3】创建分支

  • 仅创建分支
git branch <分支名>
  • 创建并切换至新分支
git checkout -b <分支名>
或
git switch -c <分支名>

【3.4】删除分支

  • 分支中的commit都已合并(即:有另外任何一个分支指向待删分支最新的commit)
git branch -d <分支名>			//如果当前分支是要删除的分支,则不能删除,需先切换至其他分支
  • 分支中存在未合并的commit
git branch -D <分支名>			//未合并的commit都会被丢弃

【3.5】合并分支

【3.5.1】合并

过程:将分支A的Commit合并到B分支
【Step1】切换至B分支
【Step2】git merge <A分支名>

【3.5.2】发生冲突

说明:
1、合并分支时,若存在冲突,则无法合并;
2、此时,工作区冲突文件均被修改(工作区冲突文件的冲突部分被Git自动改为两分支区别的对比,待手动处理);
3、暂存区也多了一处修改(指示有冲突待处理);
4、当前分支也进入“分支名|MERGING”状态;

  • 终止合并状态
要撤销当前这种"分支名|MERGING"状态,使用以下命令;
git merge --abort
  • 解决冲突
【Step1】修改所有冲突文件
【Step2】git add 所有冲突文件
【Step3】git commit				//此时,在当前分支新增了一条commit,要记录本次合并

注意:此时,仅仅是当前分支完成了合并,另一条分支还是原来的样子

【3.6】远程仓库操作

本地分支和远程分支是相互独立的(在不同的Git库中),但它们之间可以建立一种追踪关系

【3.6.1】创建 远程分支 对应的 本地分支

从远程clone到本地的项目,只有master分支会clone下来,其他分支需要手动创建

git checkout -b <本地分支> origin/<远程分支>			//此时,也自动创建了本地分支和远程分支的追踪关系

【3.6.2】推送 本地分支 到 远程分支

  • 远程没有与本地分支对应的分支
//创建远程分支,并建立追踪关系
git push -u origin <本地分支名>			//此命令无需事先切换分支
//仅创建远程分支,不建立追踪关系
git push origin <本地分支名>			
  • 远程存在与本地分支对应的分支(无追踪关系)
git push origin <本地分支名>			//此命令无需事先切换分支
  • 远程存在与本地分支对应的分支(有追踪关系)
【Step1】切换到要推送的本地分支
【Step2】git push			//前提:当前分支与远程分支已经建立了追踪关系		//只推送当前的本地分支;

【3.6.3】要推送的分支 与 远程分支 冲突

远程分支已被其他人修改,自己的修改需要推送,但却存在冲突

【Step1】git pull origin <分支名>			//拉取远程分支的commit到本地,当前分支进入“分支名|MERGING”状态
【Step2】按本地解决冲突的方式解决“本地分支”与“远程分支”的冲突(提交commit)
【Step3】推送解决冲突后的本地分支(带着新的解决冲突的commit)
  • 拉取分支
git pull					//所有与本地分支有"追踪关系"的远程分支都会被拉取下来;当前分支若是和远程分支没有冲突的话会合并,其他分支则不会与对应的远程分支合并,仅仅显示远程分支为最新;
  • 手动建立本地分支远程分支的追踪关系
git push --set-upstream origin <本地分支名>			//同名远程分支不存在会自动创建
git branch --set-upstream-to <本地分支名> origin/<远程分支名> 
  • 查看本地分支远程分支的追踪关系
git branch -vv

【4】工作区操作

【4.1】提交修改

  • 单个文件
git add <file>
  • 所有文件
git add .

【4.2】撤回修改

  • 单个文件
git restore --staged <file>

【4.3】丢弃修改

  • 单个文件
git restore <file>
或
git checkout -- <file>

【5】暂存区操作

commit就是一次性提交暂存区所有修改

git commit -m "注释"

【6】保存工作现场以先完成其他修改

工作现场: 目前在 工作区暂存区 的修改

【Step1】git stash		// 此时会清空工作区和暂存区(除了工作区中的新增文件);此动作相当于创建了一个名为stash的分支,工作现场保存在该分支最新的2个commit中;
【Step2】完成其他修改,并提交
【Step3】git stash apply		// 恢复 stash 中的内容到工作区和暂存区;有时和刚才的修改会存在冲突,此时需要解决冲突内容;
【Step4】git stash drop		// 确认没有问题后,将 stash 分支删除

1、如果可以确定工作现场与刚完成的修改无冲突,可以直接使用 git stash pop 命令,相当于 Step3 + Step4
2、多次提交的stash并不冲突,似乎以队列的方式存在,每次apply都是恢复最近的一次stash

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值