第一步:右击将要上传的文件夹,在右键菜单栏里选择Git Bash Here选项
第二步:在弹出的Git命令窗口中输入git init (此时生成 .git文件)
第三步:复制gitee仓库的HTTPS链接
第四步:在Git命令窗口中输入git remote add origin+复制出来的仓库的HTTPS链接
第五步:在Git命令窗口中输入git pull origin master 并在弹出的窗口中输入码云登陆的对应的账 号和密码 (如果想强推就这步的时候直接 git push -f origin master (这个命令在团队 开发的时候最好不要用,否则可能会有生命危险))
第六步:输入git add .(.表示所有文件)或者git add + 文件名(作用:将文件保存到缓存区)
第七步:输入git commit -m ‘文件描述’(文件描述的内容随便写)
第八步:输入git push origin master ,将本地仓库推送到远程仓库(如果你不在master分支的 话呢记得把master换成你那个分支的名字哦)
第九步:完成以上操作后即可前往码云查看刚才上传的结果
git init
git remote add origin+复制出来的仓库的HTTPS链接
git pull origin master
git add .
git commit -m ‘文件描述’
git push origin master
git clean n //这个是清除文件预览
git clean -f //强制清除文件
git fetch
git checkout -a
git checkout origin/master
git status
(下面都是我自己用来解决过问题的,觉得不错的博客,把他做成合集是为了方便自己日后的查找,原文链接会全部放在最下面)
本地创建了一个project
并在码云上创建了一个仓库,想要将本地的仓库链接到远程仓库
我用的是如下方法:
git init 初始化本地仓库
git remote add origin XXX 添加远程仓库地址
如果你在这之后就执行
git add -A,
git commit -m " "
git push origin master,那么就会出现这个问题(被拒绝),所以在remote add后不要着急git add,一定要git pull origin master,出现这个原因
是因为你在码云创建的仓库有ReadMe文件,而本地没有,造成本地和远程的不同步,
那么有两种方案可以解决:
one :
本地没有ReadMe文件,那么就在本地生成一个:
git pull --rebase origin master 本地生成ReadMe文件
git push origin master
two:
那我就强制上传覆盖远程文件,
git push -f origin master
(这个命令在团队开发的时候最好不要用,否则可能会有生命危险)
当没有先使用pull,先直接git add 和git commit 后,使用git push出现下面这个错误的时候
这个报错说明你本地代码和服务的代码有冲突,可以git log 查看本地是git 日志,发现和服务上的不一样,说明在你之前有人提交过代码,服务日志和本地日志不一样。 解决办法是
1,先使用 git pull --rebase 把服务器的代码拉下来
git pull --rebase
然后会看的这样的效果:
这说明有冲突,我们要先解决冲突
2,解决完冲突在 git add ,然后git status 查看是不是提交的文件已经准备好
这时候它会有提示
git rebase --abort // 取消合并
git rebase --continue // 继续执行
3,准备好以后我们在 git rebase --continue,继续执行,这样就会合并log,
4,最后我们在提交 git push
名为的manage项目操作过程
1、在manage文件夹里打开git,输入git init初始化本地仓库,GitHub创建远程仓库manage
2、以下命令关联本地和远程仓库,*****为我的用户名
git remote add origin [email protected]:******/manage.git
3、本地已经有项目代码了在add和commit之后,想要push到远程仓库
git push origin master
此时报错 :
! [rejected] master -> master (non-fast forward)
…………
…………
在网上搜了好久,输入了各种无效和错误的命令后,终于找到了解决办法:
1、git pull origin master --allow-unrelated-histories //把远程仓库和本地同步,消除差异
2、重新add和commit相应文件
3、git push origin master
4、此时就能够上传成功了
今天在工作中遇到一个问题,使用很久的一个local git repository,里面只有develop分支,那么现在想将分支切换到master分支,问题来了,在切换到master分支时:
git checkout master
提示如下错误:
error: pathspec 'master' did not match any file(s) known to git
1.首先我们看一下分支情况:
git branch -a
* develop
remotes/composer/develop
remotes/composer/feature/194
remotes/composer/feature/198
remotes/composer/feature/199
remotes/composer/feature/200
remotes/composer/master
remotes/origin/HEAD -> origin/develop
remotes/origin/develop
remotes/origin/feature/194
remotes/origin/feature/198
remotes/origin/feature/199
remotes/origin/feature/200
remotes/origin/master
git fetch
3.切换到远程master分支:
git checkout origin/master
提示如下:
Note: checking out 'origin/master'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at 4beea49... Merge branch 'develop' into 'master'
执行git branch,效果如下:
* (detached from origin/master)
develop
5.现在我们可以从当前的detached分支切换并新建分支,可以理解为即将新创建的分支是由当前detached 分支出来的(为了为后续做准备,此处新分支就叫做master):
git checkout -b master
5.这时我们使用git pull会提示如下错误:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=/ master
说明我们新建立的master分支还不能和远程的master分支建立追踪关系(虽然表面我们看似已经建立了master分支,但git不认为它和远程的master有任何关系),当然,您可以按照上面提示那样,通过git pull指定远程的分支和本地的分支来进行更新,但此处我们使用提示中的第二种方式,建立本地分支和远程分支的追踪关系:
git branch -u origin/master master
6.这时我们执行git pull来看看什么反馈:
Already up-to-date.
总结:其实git的人性化做的非常的完备,有时我们不要惧怕提示,而要从中找到问题的解决方法,并时常利用好:
man git
man git branch
and so forth!
Bye!
有些时候,当我们使用 git checkout
命令切换分支的时候,有时会切换失败,然后出现以下的提示信息:
提示信息说的很清楚,
当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓存( stash )或者提交( commit )。
这个时候,你有两种选择:
###1.未跟踪文件的内容改动很重要,保存修改
//第一种方式 存到暂存区
git add.
git stash
//取出的时候使用
git stash pop
//第二种方式 发起一个commit 存到提交历史
git add.
git commit -m "commit message"
###2.未跟踪文件的内容改动不重要,放弃修改
这个有两种办法,清除修改和强制切换分支
推荐做法:清除未跟踪文件
git clean n //这个是清除文件预览
git clean -f //强制清除文件
强制切换分支
强制切换分支命令如下,结果同提示说的那样,会直接覆盖未跟踪的文件。这个方式我觉得很是粗暴,我们日常切换的时候,还是不要使用 -f
强制切换,没有覆盖提示,很容易发生文件修改丢失,但是我们自己不知道。
git checkout -f
git 的本地版本管理有三个部分
git 的本地版本管理有三个部分
名称 说明
工作区(Working Directory) 我们直接编辑的文件部分
暂存区(Staged Snapshot) 文件执行 git add .后存的地方
版本库区 (Commit History) 文件执行 git commit .后存的地方
它们三个的关系是这样样子的:
(说明:图片非原创,来自图解Git )
当我们执行 checkout 操作的时候,git 会检查工作区是否存在未跟踪文件,这就是我们上面当执行 checkout 的时候出现错误提示的原因。
从一个分支A切换到另一个分支B后,对切换后的B分支进行pull操作,因为pull操作实际上包含了fetch+merge操作,在执行 merge操作时,由于很长时间没有对B分支执行过pull/merge操作,本地的B分支库与remote中的B分支库中的差异很大(且这些差异是其他 同事开发的文件),merge时产生冲突,使得B分支的状态为merging,其实是指merge失败,还停留在merge状态,也不能执行pull操 作。这时没有解决冲突,而是从B分支上执行checkout/switchto操作,试图再切换其他分支时,报:
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
…….java : needs merge
…….java : needs merge
…….java : needs merge
error : you need to resolve your current index first
的错,google了半天,终于在stackoverflow上找到了答案,大题意思是:merge失败,有conflicts没解决,可以:
1、解决conflicts后再次执行merge;
2、回退到merge前
恩,既然merge冲突是其他同事的文件,我不需要去resolve conflicts,那就退回merge前吧,单纯的改我的文件再push吧,执行以下代码:
git reset --merge
搞定!
顺便贴下stackoverflow上的链接:
http://stackoverflow.com/questions/6006737/git-merge-errors
出现Incorrect username or password ( access token )提示
分析:出现的原因是因为在第五步中弹出窗口中输入码云错误的登陆的账号和密码导致
处理办法:前往控制面板>用户管理>凭据管理器下面的Windows 凭据进行修改(由于我此处是Win 10系统,可能会存在差异)
出现GE007: Your push would publish a private email address提示
处理办法:前往gitee个人首页右上角选择设置>多邮箱管理>取消禁止命令行推送暴露个人邮箱勾选
原文内容链接合集:
(119条消息) git push后出现错误 ![rejected] master -> master(non-fast-forward) error:failed to push some refs to XXX_longfan的博客-CSDN博客
(119条消息) git rebase后出现(master|REBASE 1/1)的解决办法_就是个名称的博客-CSDN博客
(119条消息) Git使用之(pathspec master did not match any file(s) known to git)_灰化肥发黑会挥发-CSDN博客
(119条消息) Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”_段浅浅的博客-CSDN博客
(119条消息) you need to resolve your current index first 解决办法_wenwenxiong的专栏-CSDN博客
(119条消息) git上传步骤_楠啊#的博客-CSDN博客_git上传