开发中常见git操作以及错误解决办法

开发中常见git操作以及错误解决办法_第1张图片

本文只是记录平时我在开发中使用的一些git命令,如需了解具体的git使用,请戳链接:

“git使用详解”

初次构建项目时,需要初始化git,并绑定远程地址,命令如下:

git init //初始化git
git remote add origin https://github.com/cllstudy/cllstudy.github.io.git   //连接远程地址     

如果你的仓库不是主仓库,此时还需绑定主仓库地址,命令如下:

`git remote add upstream 远程仓库地址`

至此,git初始化就完成了.下面是提交代码的命令

git add .
git commit -m"提交的说明内容"
git push origin master  //提交到你自己的仓库

拉取代码

从自己的仓库拉取:

git fetch origin  //更新远程跟踪分支
git merge origin master

从主仓库拉取(如果存在的话)

git fetch upstream  //更新远程跟踪分支
git merge uostream/master master

如果有冲突,可以通过 git status 命令查看状态

版本回退

git reset --hard commitID //commitID为提交的ID

git常见错误处理

如果输入$ git remote add origin https://github.com/(github账户名)/(项目名).git
提示出错信息:fatal: remote origin already exists.
解决办法:

  • 先输入$ git remote rm origin
  • 再输入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不会报错了!
  • 如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
  • 找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
    -找到一个名为gitconfig的文件,打开它把里面的[remote “origin”]那一行删掉就好了!

在团队使用git开发过程中,不小心会遇到这种情况,push自己的代码前忘记先pull一下了。这样在push时候会遇到类似一个这样的错误:

! [rejected]
branch -> branch (non-fast-forward)
error: failed to push some refs to …
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.

而根据错误提示再进行pull的时候,还是报错:

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

解决这个问题的方法有很多种,在网上也能搜索出很多相关内容,这是挺常见的问题。个人觉得这个时候使用rebase,可以很完美得解决这个问题。这可以说是rebase命令的经典用例。
具体命令如下:

先拿一下远端代码库
git fetch origin
然后对远端代码库进行rebase,相当于弥补之前遗漏的pull操作
git rebase origin/YOUR_BRANCH_NAME
(例子:git rebase origin/master)
最后重新push
git push -u origin YOUR_BRANCH_NAME
(例子:git push origin master)
上述方法适用于远程库的内容与本地一样才可以执行此操作,但出现这种情形将不适用于上述操作:
当你提交时,发现提交错误,此时,通过git reset --hard commitID 命令进行回退到commitID 对应的版本,这时,远程库与本地库的代码将不一样,如果还是用上述的办法,版本回退相当于没有使用,正确做法:
git push -f origin master
强制把远程库变成与本地一致,但大部分公司禁止如此操作,不过,在确保远程代码没有冲突的情况下可以进行此操作
开发中常见git操作以及错误解决办法_第2张图片

Push代码出现Everything up-to-date的解决办法
everything.png
出现这个问题的原因是git提交改动到缓存,要push的时候不会将本地所有的分支都push掉,所以出现这个问题。我们应该告诉git提交哪个分支。如图:
开发中常见git操作以及错误解决办法_第3张图片

解决步骤:
接下来先创建一个新分支提交改动
git branch newbranch
然后输入这条命令检查是否创建成功
$ git branch

这时终端输出
newbranch
* master

这样就创建成功了,前面的*代表的是当前你所在的工作分支。我们接下来就要切换工作分支。
$ git checkout newbranch

这样就切换完了,可以$ git branch确认下。然后你要将你的改动提交到新的分支上。

gitadd. git commit -a

此时可以 gitstatus git checkout master

然后我们要将新分支提交的改动合并到主分支上
$ git merge newbranch

合并分支可能产生冲突这是正常的,虽然我们这是新建的分支不会产生冲突,但还是在这里记录下。下面的代码可以查看产生冲突的文件,然后做对应的修改再提交一次就可以了。
$ git diff

我们的问题就解决了,接下来就可以push代码了。
$ git push -u origin master

新建分支的朋友别忘了删除这个分支
$ git branch -D newbranch

如果想保留分支只是想删除已经合并的部分只要把大写的D改成小写的d就行了。

首发:个人博客站
感觉阅读,如有错误,欢迎指正!

你可能感兴趣的:(Android,git)