git常用命令以及常见错误处理

git常用命令以及常见错误处理

git常用命令

初始化

git init ,会在本地目录下生成一个.git文件夹,表明此项目已被git管理。

克隆远程仓库或者与远程仓库建立链接

git clone :克隆远程仓库或者与远程仓库建立链接

git clone 远程仓库地址

git remote add:连接远程仓库

git remote add origin 远程仓库地址

查看本地仓库的状态

git status : 查看本地仓库的状态

查看仓库有哪些分支

git branch : 查看仓库有哪些分支

切换或新建分支

git checkout : 切换或新建分支

#创建dev分支并切换到该分支下
git checkout -b dev
#切换到master分支
git checkout master

新建分支后要想远程仓库也生成该分支,
可立即用如下命令关联远程分支,关联后远程仓库就会生成这个分支。

git push --set-upstream origin dev

添加

git add : 添加改动

#添加指定改动文件
git add 文件名
#添加所有改动文件
git add .

提交

git commit : 将add的文件提交到本地仓库

git commit -m "注释"
#如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend -m "新注释"

推送

git push : 将本地仓库推送到远程仓库

git push origin 分支名

合并分支

以将dev分支合并到marter分支为例:

  1. 首先切换到master分支上
git checkout master
  1. 确保master代码是最新的代码
git pull origin master
  1. 然后我们把dev分支的代码合并到master上
git merge dev
  1. 然后查看状态及执行提交命令
git status

//显示你有1个commit,需要push到远程master上

$ git status
On branch master
Your branch is ahead of ‘origin/master’ by 1 commits.
(use “git push” to publish your local commits)
nothing to commit, working tree clean
  1. 提交到master
git push origin master

回退

我们在使用git命令的时候,有时候误输入命令,导致需要回退到之前的状态。现在针对这种情况做一个汇总:

1. git add 回退
git status 先看一下add中的文件,确定已经添加的文件。
git reset HEAD 如果后面什么都不跟的话,就是add已添加的全部撤销。
git reset HEAD xxx.cpp 只撤销所列出的文件。
2. git commit 回退
git reset HEAD~1

注意:仅仅是撤回commit操作和撤回git add . 操作,您写的代码仍然保留

HEAD~1 表示的是最顶上的一个版本,或者也可以写成 HEAD^  
如果你进行了2次commit,想都撤回,可以使用 HEAD~2 或者 HEAD^~1
# --mixed 默认参数,不删除工作空间改动代码,撤销commit并且撤销git add . 
git reset --mixed HEAD^ 
或者 
git reset HEAD^ 

# --soft  不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft HEAD^ 

# --hard 删除工作空间改动代码,撤销commit,撤销git add .
git reset --hard HEAD^ 
3. Git review回退
git checkout [分支名] 切换到需要回退的分支
git log 查看提交记录
git reset --hard 代码回退
git reset --hard [commit id] 复制最近提交的上一条提交记录的commit id
git review 重新提交修改
4. Git rebase回退
git reflog 先查看本地提交操作编号。
找到提交前的项目编号,执行:git reset --hard 项目编号
5. Git cherry-pick回退
git cherry-pick --abort.

git常见错误处理

error: File: XXX XXX MB, exceeds 100.00 MB.

  1. 提交的文件中有超过100MB导致出错
remote: Powered by GITEE.COM [GNK-6.4]
remote: error: File: 51237645d622455060faa0fbcd1b6074f192d673 116.58 MB, exceeds 100.00 MB.
remote: Use command below to see the filename:
remote: git rev-list --objects --all | grep 51237645d622455060faa0fbcd1b6074f192d673
remote: Please remove the file from history and try again. (https://gitee.com/help/articles/4232)
  1. 解决办法

按照提示找到那个超大的文件

git rev-list --objects --all | grep 51237645d622455060faa0fbcd1b6074f192d673
  1. 执行命令忽略掉超大的文件
git rm --cached 文件名
#如果是文件夹
git rm -r --cached 文件夹名
  1. 将要忽略的文件名添加到.gitignore中

  2. 然后执行add 和 commit

git add .
#这里的命令是用原来的信息再重新提交一次
git commit --amend -CHEAD
  1. 在commit的提交历史里面去除这个超大文件
git filter-branch --tree-filter 'rm -f 文件名' HEAD

全部操作如下:
在这里插入图片描述
7. 最后再执行push

git push origin master

这时候会出现如下错误,解决办法见下一条:
在这里插入图片描述

! [rejected] master -> master (non-fast-forward)

  1. 出现 master -> master (non-fast-forward)这个错误,表明:你的本地仓库是新的代码,而你的远程仓库还是之前版本的代码
To gitee.com:liang_baikai/test.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'gitee.com:liang_baikai/test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  1. 强制覆盖
    ** 进行此操作时一定要检查清楚再操作 **
git push --force 仓库地址
#或者
git push --force origin master
#或者
git push origin master -f
  1. pull
git pull
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值