CLL

Sunshine always comes after the rain

Welcome to my personal station!



正在加载今日诗词....

开发中常见git操作

本文只是记录平时我在开发中使用的一些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 upstream/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 https://github.com/(github账户名)/(项目名).git 就不会报错了!
  • 如果输入 $ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
  • 找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub
    \PortableGit_ca477551eeb4aea0e4ae9fcd3358
    bd96720bb5c8\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
强制把远程库变成与本地一致,但大部分公司禁止如此操作,不过,在确保远程代码没有冲突的情况下可以进行此操作 clipboard.png

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

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

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

这时终端输出
newbranch

  • master

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

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

	$ git add . 
	$ git commit -a  

此时可以$ git status检查下提交情况。如果提交成功,我们接下来就要回主分支了,代码和之前一样。
$ git checkout master

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

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

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

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

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

git push 错误

push代码提示类似错误:

fatal: unable to access ‘https://gitee.com/xxxx/asdf.git/’: Could not resolve host: gitee.com

原来是因为gitee.com没有被主机给解析

解决:

第一步: ping gitee.com

正在 Ping gitee.com [120.55.226.24] 具有 32 字节的数据:
来自 120.55.226.24 的回复: 字节=32 时间=98ms TTL=30
来自 120.55.226.24 的回复: 字节=32 时间=93ms TTL=30
来自 120.55.226.24 的回复: 字节=32 时间=296ms TTL=30
来自 120.55.226.24 的回复: 字节=32 时间=96ms TTL=30

120.55.226.24 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 93ms,最长 = 296ms,平均 = 145ms

第二步:编辑hosts文件,添加:
120.55.226.24 gitee.com

保存即可.

感觉阅读,如有错误,欢迎指正!

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝/微信扫一扫,即可进行扫码打赏哦