本文只是记录平时我在开发中使用的一些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 remote add origin https://github.com/(github账户名)/(项目名).git
提示出错信息:fatal: remote origin already exists.
解决办法:
在团队使用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就行了。
首发:个人博客站
感觉阅读,如有错误,欢迎指正!