条理最清楚的最常用的 Git 管理指令

在这里插入图片描述

基础提交操作

git init # 将本地文件夹变为一个git仓库
git clone #将远程仓库克隆到本地
git log 查看提交记录
git fetch 命令更新remote索引,解决git branch -a没有最新分支的问题

git add # 将单个文件从工作区添加到暂存区
git add . # 将所有文件添加到暂存区
git commit -m “messenge” # 将暂存区文件提交到本地仓库
git status # 查看工作区状态,显示有变更的文件。
git diff # 比较文件的不同,即暂存区和工作区的差异???

撤回操作

还没有add到暂存区,只在本地工作区

当你改乱了工作区某个文件的内容,但还没有add到暂存区
git checkout # 撤销工作区的某个文件到和暂存区一样的状态 或
git checkout . # 撤销工作区所有文件

已经add到暂存区,还没有commit到本地仓

假设你执行了 git add . 之后发现 file1.txt 和 file2.txt 不应该被添加。你可以按如下步骤操作:
git reset HEAD file1.txt file2.txt # 移除这两个文件从暂存区
git status # 检查状态确认

当已经进行了commit到本地仓,还没有push到远程仓

git reset --soft commitid # 还原到某一次提交, 本地仓回滚, 保留工作区和暂存区的内容
git reset --mixed commitid # 还原到某一次提交,本地仓和暂存区都回滚, 只保留工作区的内容 —mixed 可以省略
git reset --hard commitid # 还原到某一次提交 本地仓、暂存区、工作区 都回滚
git reset --hard origin/branchname 完全重置,强制覆盖本地代码

git reset --hard HEAD^ # 回退到上次提交的状态
git reset --hard HEAD~3 # 回退到3个版本前的状态

分支操作

查看分支

git branch 查看当前工作在那个分支 本地所有分支
git branch -a 可以查看远程所有的分支
git branch -vv 查看本地分支跟远程分支是否存在追踪关系

切换分支

git checkout master 仅仅切换分支到master

创建本地分支: 基于当前本地分支创建本地分支

git branch 基于当前本地分支创建本地分支
git checkout -b 基于当前本地分支创建本地分支,还会切换到该分支

创建本地分支: 基于远程分支创建本地分支

git checkout -b origin/<remote_branch> 基于远程分支新建分支

创建远程分支:

git checkout -b 首先在本地创建一个分支
git push origin 然后推送到远程仓库

删除分支:删除本地分支

git branch -d # 删除已经合并的分支;例如name分支已经合并到了当前dev分支
git branch -D # 强制删除分支

删除分支:删除远程分支

git push origin --delete <remote_branch>

合并分支

git merge dev 合并dev分支到当前分支

push分支

git push origin local:remote 完整的写法,将本地当前分支的代码推送到远程指定的分支上
git push origin dev 代替 git push origin dev:dev 如果本地分支名和远程分支名一样
git push origin 推送所有本地和远程同名的分支的更改
git push 本地仓库只跟一台远程主机有关联,则 代替 git push origin dev:dev

解除分支和建立连接

git branch -vv 查看本地分支与远程分支的映射关系
git branch --unset-upstream 解除本地和远程分支的关联
git branch --set-upstream-to=origin/<remote_branch> 建立当前本地分支与远程分支的映射关系
git branch --set-upstream dev origin/<remote_branch> 创建关联本地dev和远程;和上面作用一样,不过要制定本地分支

切换分支 前保存代码

git stash 命令。将当前分支存起来,再切别的分支开发。完了再回来
git stash list 命令去查看我们“存储”的列表
命令:git stash pop stash@{num}
恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}

整体迁移代码仓,new内容替换old内容

git clone --bare https://github.com/exampleuser/old-repository.git
cd old-repository
git push --mirror https://github.com/exampleuser/new-repository.git

其他参考

Git分支管理
https://blog.csdn.net/silence_pinot/article/details/111478596

git push的详细使用
https://blog.csdn.net/chaogu94/article/details/111057046

Git 更改本地分支与远程分支的映射关系
https://blog.csdn.net/qq_31417067/article/details/128516769

git修改分支名称
https://blog.csdn.net/weixin_49343190/article/details/121924241

对于解决 Git 的 Merge Conflict 你有哪些经验和技巧?
https://www.zhihu.com/question/21215715

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值