1.将远程的代码clone到本地仓库
2.将本地的代码关联到远程仓库
第1种,直接git clone 仓库地址即可。
重点说第2种
1、在github上新建一个仓库,然后在本地仓库配置远程仓库地址
>git remote add origin [email protected]:stormzhang/test.git
2、此时再进行pull操作更新本地仓库,由于两个仓库的commit起始点不同,会出现异常
$ git pull origin master
key_load_public: invalid format
From ******************************//git仓库地址
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
3、解决方式
>git merge origin/master --allow-unrelated-histories
4、进行push首推
>git push -u origin master
解决问题。
另外,执行git add . 将不必要的文件加入暂存区后,执行
>rm -r “目录名字”
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
git branch [branchName]
git checkout [branchName]
git push --set-upstream origin [branchName]
git tag --list
git tag --create [tagName]
git push origin [tagName]
git push origin --tags
Git管理的文件分为:工作区,版本库,版本库又分为暂存区stage和暂存区分支master(仓库)
工作区>>>>暂存区>>>>仓库
git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库,
git diff查看工作区和暂存区差异,
git diff --cached查看暂存区和仓库差异,
git diff HEAD 查看工作区和仓库的差异,
git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区,
git commit的反向命令git reset HEAD,就是把仓库最新版本转移到暂存区。
异常信息:
$ git push
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:master
To push to the branch of the same name on the remote, use
git push origin branch-xxx
To choose either option permanently, see push.default in 'git help config'.
也就是本地分支与远程分支的名字对应不上,不能直接push,应该是追送关系乱了。至于怎么乱的,x才知道。
关于分支的一些命令
从当前分支切换到‘dev’分支:
git checkout dev
建立并切换新分支:
git checkout -b 'dev'
查看当前详细分支信息(可看到当前分支与对应的远程追踪分支):
git branch -vv
查看当前远程仓库信息
git remote -vv
通过git remote -vv命令,可以查看分支对应关系:
$ git branch -vv
* branch-xxx 1f1f4d3 [origin/master] 空值处理
connect_xxx dc28be0 [origin/connect_db] 调整图片宽高比
master 137290b [origin/master: behind 27] wrapper
果然branch-xxx与master产生了关联。去.git文件夹下找到config文件。
[remote "origin"] // 下面模式远端分支信息
[branch "master"] // 是本地分支信息
remote = origin
merge = refs/heads/master
[branch "branch-xxx"]
remote = origin
merge = refs/heads/origin/master
从这里将branch-xxx的merge配置,修改为正确的对应关系,问题即可解决。
[branch "branch-xxx"]
remote = origin
merge = refs/heads/origin/branch-xxx
备注:后面遇到的git各种疑难杂症都将更新到这里。