git常用命令总结

(1)git本地仓库关联远程仓库的两种方式:

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 就是直接强行删除,不作任何提示的意思


(2)创建分支并推送到远程仓库:

git branch [branchName]
git checkout [branchName]
git push --set-upstream origin [branchName]

(3)创建tag并推送到远程仓库:

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,就是把仓库最新版本转移到暂存区。

(4)Git本地分支与远程分支的追踪关系

异常信息:

$ 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各种疑难杂症都将更新到这里。

 

你可能感兴趣的:(git,git,疑难杂症,branch,tag)