您的位置:首页 > 其它

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

2018-01-20 10:49 871 查看


本文只是记录平时我在开发中使用的一些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 git@github.com: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


强制把远程库变成与本地一致,但大部分公司禁止如此操作,不过,在确保远程代码没有冲突的情况下可以进行此操作



Push代码出现Everything up-to-date的解决办法



出现这个问题的原因是git提交改动到缓存,要push的时候不会将本地所有的分支都push掉,所以出现这个问题。我们应该告诉git提交哪个分支。如图:



解决步骤:

接下来先创建一个新分支提交改动

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就行了。

首发:个人博客站

感觉阅读,如有错误,欢迎指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: