当前位置:   article > 正文

git常用命令以及常见错误处理_git_command.gitcommanderror: gitcommanderror: 'ls-

git_command.gitcommanderror: gitcommanderror: 'ls-remote -q --symref --exit-

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

git常用命令

初始化

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

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

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

git clone 远程仓库地址
  • 1

git remote add:连接远程仓库

git remote add origin 远程仓库地址
  • 1

查看本地仓库的状态

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

查看仓库有哪些分支

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

切换或新建分支

git checkout : 切换或新建分支

#创建dev分支并切换到该分支下
git checkout -b dev
#切换到master分支
git checkout master
  • 1
  • 2
  • 3
  • 4

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

git push --set-upstream origin dev
  • 1

添加

git add : 添加改动

#添加指定改动文件
git add 文件名
#添加所有改动文件
git add .
  • 1
  • 2
  • 3
  • 4

提交

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

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

推送

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

git push origin 分支名
  • 1

合并分支

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

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

//显示你有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
  • 2
  • 3
  • 4
  • 5
  1. 提交到master
git push origin master
  • 1

回退

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

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

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

HEAD~1 表示的是最顶上的一个版本,或者也可以写成 HEAD^  
如果你进行了2次commit,想都撤回,可以使用 HEAD~2 或者 HEAD^~1
  • 1
  • 2
# --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^ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
3. Git review回退
git checkout [分支名] 切换到需要回退的分支
git log 查看提交记录
git reset --hard 代码回退
git reset --hard [commit id] 复制最近提交的上一条提交记录的commit id
git review 重新提交修改
  • 1
  • 2
  • 3
  • 4
  • 5
4. Git rebase回退
git reflog 先查看本地提交操作编号。
找到提交前的项目编号,执行:git reset --hard 项目编号
  • 1
  • 2
5. Git cherry-pick回退
git cherry-pick --abort.
  • 1

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
  • 2
  • 3
  • 4
  • 5
  1. 解决办法

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

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

  2. 然后执行add 和 commit

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

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

git push origin master
  • 1

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

! [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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 强制覆盖
    ** 进行此操作时一定要检查清楚再操作 **
git push --force 仓库地址
#或者
git push --force origin master
#或者
git push origin master -f
  • 1
  • 2
  • 3
  • 4
  • 5
  1. pull
git pull
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/528436
推荐阅读
相关标签
  

闽ICP备14008679号