Git提交项目遇到的问题及解决方案!

首先,在此感谢 ジーノ网友耐心细致的指导!接下来我把遇到的问题和解决方案提交,一来记录经验,今后忘了也还可以再查看,二来希望和我有类似经历的人可以不用走我走过的弯路。

首先你要弄清楚这几个概念:
提交(commit),指将本地的更改让 Git 记录在本地仓库
推送(push),指将 commit 发送到远端仓
add 跟踪更改,commit 记录更改,push 推送更改
 Git 只记录更改
有远端仓的话,用 git clone <远端仓地址> 来初始化一个仓库
(没有的话,用 git init,其实 git clone <远端仓地址>= git init + git remote add origin <远端仓地址>
对于绝大多数情况,一个仓库一生只需要执行 init 或者 clone 一次,而且 clone 就不需要 init,init 就不需要 clone
我在网上看的教程:



git add README.md
git remote add origin <git地址>
git remote rm origin  ----这里是删除了origin
git push origin master  ---你才推送就会失败
这里后面两步其实是错误的。
你在怎么折腾你的 origin……
你刚刚执行的是 clone,origin 已经写好了,
然后你 git remote add origin:
因为 origin 已经存在所以 add 不了
然后你 git remote rm origin,把 origin 删了
然后你 git push origin master,
你刚刚把 origin 删了自然没法 push
只有 add 没有 commit是提交不成功的。


对 Git 来说,文件有三种状态
状态:
被添加(added,指上次 commit 还没有,现在新建的文件),
被修改(modified,指上次有,这次被修改了的),
被删除(deleted,上次有,现在没了的文件),
git add 可以将这三种状态纳入跟踪,如果你用 commit -a 的话,
它只实现了 add 被修改和被删除的功能,如果是被添加的,commit -a 会无视它们。
 即,如果自上次 commit 之后你没有新增文件,你可以用 git commit -a 来同时完成 git add 的操作,
但是有新增文件的话就不行了


然后 -a -m 的差别
它们根本在功能上就没有任何冲突或者相交之处,无从说起它们的差别
-a 我解释了,其实就是部分的 git add


-m 嘛,Git 规定每个 commit 都必须有个 commit message(提交信息),来描述你这个提交做了什么,使用 -m 后面跟一个字符串就是用那个字符串来指定提交信息。如果没有 -m 的话,因为你让 Git 执行 commit 的动作,这时它需要一个 commit message,就只能用文本编辑器让你写喽。文本编辑器是什么,就只能有 vi 了喽




而有个经典的笑话,“如何产生随机字符串?让新手退出 vi”,所以你进入 vi(我应该用“误入”“误闯”吧)之后我说“进入了产生随机字符串的界面”
退出 vi 的命令就是 :q(保存是 :w,保存退出是 :wq,不保存强制退出是 :q!)
你不知道怎么退出 vi,合理也就不知道怎么编辑,所以一定是没改过的,所以 :q 就足够了


有新增文件就老老实实 add, commit, push
 没有新增文件就可以(偷懒地) commit -a, push


文件夹被锁住
你把那 vi 窗口直接关掉的


你现在能做的就只是先进 commit 窗口,这时 vi 会问你各种,安全退出后重新 commit 就好


把锁文件删掉
rm ./.git/index.lock--记得rm 后面加个空格


git commit -m "提交信息,想写什么就写什么,最好用一句话表达出你做了什么"


那我提交项目的话,就只需要add +项目名是吗?


嗯,你需要做的全过程是
网页上新建一个远端仓,_不_选择初始化 readme(为了得到一个空仓),然后记下仓库地址。
来到你的 workspace,你已经有个文件夹是 E:\code\github,嗯在那里右键 git bash
命令行中,git clone <刚刚记下的仓库地址>
关掉 git bash。
然后你回去文件夹界面看,会看到一个新文件夹以你仓库名命名的。
打开它,把你整个项目复制进这个新文件夹。
右键 git bash
add commit push 三件套:


git add <提交的文件>


git commit -m "文件说明"


git push origin master



完事。

如果本地有删除修改:

git add .

也许这里还要:git commit -a

                     git push origin master

可是在接下来提交的话,远端还是提交不成功,我就更新:

git  pull

望指正!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值