目录
上传
由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下。先看一下你C盘用户目录下有没有.ssh目录,有的话就跳到下一步,没的话请跳转到此处设置。
设置成功后,后续不需要再做连接设置便可与远程仓库进行传输操作。
git init //初始化本地仓库,文件夹中会出现.git管理文件
git remote add origin https://gitee.com/你的码云用户名/XXXX 本地仓库与远程仓库建立联系
git pull origin master //将远程仓库pull到本地
git add . //将要上传的文件,添加到刚刚创建的本地仓库(. 表示所有的)或者 git add + 文件名
git commit -m '新添加的文件内容描述' //更新修改内容的描述
git push//【不带任何参数的git push,默认只推送当前分支,这叫做simple方式】
git push origin【将当前分支推送到origin主机的对应分支】
git push origin master
git push -u origin master【将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了】
上传到指定分支
1.切换到指定分支
git checkout dev(要上传的本地分支名,一般与远程关联分支名相同)
2.推送到远程分支
git push -u origin dev(要上传的分支名)
更新本地代码
本地代码push后未修改:
git pull 【只有master分支,如果push后修改过本地代码直接pull会产生冲突】
本地代码有修改
只有master分支【直接覆盖本地代码】
//重置索引和工作目录
git reset ==hard
//更新代码
git pull
多分支
//切换到远程内容有更新的分支,假设主分支master有内容更新
git checkout master
//拉取master内容到本地
git pull
//切换到自己分支【name】
git checkout name
//把master分支合并到自己分支
git merger master
“master”只是git init默认创建的分支名,“origin”与“master”一样,执行git clone时默认的远程仓库名,没有具体意义
运行 git clone -o myorigin,那么你默认的远程分支名字将会是 myorigin/master
更新分支基本分为两类:合并远程分支到本地,合并本地分支到远程分支,详细解释,请跳转到此
git 问题
操作:git push
报错:The current branch master has no upstream branch.
产生原因:远程仓库太多,且分支较多。默认情况下,git push时一般会上传到origin下的master分支上,然而当repository和branch过多,而又没有设置关联时,git就会产生疑问,因为它无法判断你的push目标。
解决:将本地分支与远程仓库分支关联
解决1:
git branch --set-upstream-to=origin/master
解决2:
git push --set-upstream origin master
拓展: git push --set-upstream origin branch_name来在远程创建一个与本地branch_name同名的分支并跟踪
git checkout --track origin/branch_name来在本地创建一个与branch_name同名分支跟踪远程分支。
报错:Updates were rejected because the tip of your current branch is behind
解决1:使用允许无关联的历史记录的参数拉取之后再 push
git pull origin master --allow-unrelated-histories
git push
解决2:push前先将远程repository修改pull下来
git pull origin master
git push -u origin master
-u ,上面第二行的命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
解决3:若不想merge远程和本地修改,可以先创建新的分支
git branch [name]
git push -u origin [name]
解决4:强制push,使远程修改丢失,一般不可取,尤其多人协作时
git push -u origin master -f
中途产生问题
操作:git pull
报错:refusing to merge unrelated histories
原因:两端在做不同的提交
解决:使用允许无关联的历史记录的参数拉取
git pull --allow-unrelated-histories
操作:git pull
报错:There is no tracking information for the curren branch
原因:本地分支没有与远程分支关联。关联的目的是在执行git pull,git push 操作时不需要指定对应的远程分支。没有指定
解决:关联远端分支
git branch -vv 查看本地分支和远程分支的关联关系
解决1:直接指定远程master
git pull origin master
解决2:先指定本地master【分支】到远程master,然后再pull
git branch --set-upstream-to=origin/master[远程分支名字] [本地分支名字]
git pull