git用法

118 阅读1分钟

1 设置局部密码缓存

git config user.name 'xxxx'
git config user.email 'xxxx@xxxx.com'
git config user.password 'xxxx'
git config credential.helper store

2 unset 配置项

git config --global --unset <key>

使用场景:

$ git config --list
 
user.name=Mukvin
user.email= ...
...
url.git://.insteadof=https://

取消配置项

git config --global --unset url.git://.insteadof

3 # HEAD detached at xxx

问题描述:git checkout到某个分支,切换后发现并没有切换到该分支,而是切到了该分支的最新节点,无论如何都回不到分支头,记录这个问题

命令:git checkout origin/分支名 结果:HEAD is now at 3691a4a5f 节点信息

解决:

1 detached HEAD state指的是什么
正常情况下,HEAD指向一个branch,而branch又指向一个commit。

detached HEAD state指的是HEAD指针没有指向任何的branch,而是指向了一个commit。

2 detached HEAD state时我能做什么
我也可以提交,这个时候,commit链就在git checkout这个commit的基础上展开,但是如果直接离开到一个branch上的话,这些commits就会被当成garbage,被git garbage collection routine所回收。但是,我们也可以保留这些commits,下面三种方式:

$ git checkout -b foo ,创建一个branch指向这个commit链,然后HEAD指向这个branch,于是HEAD就不是处于detached state。
$ git branch foo,创建一个branch指向这个commit链,但是HEAD还是处于detached state。
$ git tag foo,创建一个tag指向这个commit链,HEAD还是处于detached state

3 为什么会出现git checkout origin/XXX远程分支的时候会让HEAD进入detached state HEAD不能指向远程分支,它只能指向本地的某个commit或者本地分支。当"git checkout 远程分支",而本地又没有这个分支,HEAD就会直接指向远程分支指向的commit了,HEAD指向commit就会进入detached HEAD state。

4 Git master branch has no upstream branch的解决

出现“git master branch has no upstream branch”问题的原因是没有将本地的分支与远程仓库的分支进行关联。

解决办法:

git push --set-upstream origin master

或者
git push -u origin master

或者
执行关联
git branch -u upstream/foo
再执行推送
git push 或者 git mr

参考:
blog.csdn.net/benben_2015…
stackoverflow.com/questions/5…