git碰到的一些小问题

 

使用git碰到的一些小问题,记录一下,以免忘记

第一个

 

第一次提交的时候出现无法推送的问题,解决办法是:git pull origin master(后面的origin和master是你的主机名和分支名)

 

//将已跟踪文件加入到不提交队列中

git update-index --assume-unchanged xxx
执行命令将xxx加入不提交队列
git update-index --no-assume-unchanged xxx
执行命令将xxx取消加入不提交队列

// 更新某一个文件或者文件夹
git fetch origin master // 先获取最新的分支代码到本地
git checkout origin/master c.txt // 然后更新某一个文件

 

// 拉取最新代码并且切换到另外一个分支上
1. 找一个干净目录,假设是git_work
2. cd git_work
3. git clone http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
4. cd project

5. git branch -a,列出所有分支名称如下:
remotes/origin/dev
remotes/origin/release
git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支

 

// 原来在1.0.2分支上开发,现在切换到1.0.3分支上,但是本地看不到1.0.3的分支,需要先拉取最新分支到本地

git fetch 表示从远程获取其他用户push上来的新分支

git checkout -b 1.0.3 origin/1.0.3这样就切换到1.0.3分支了

// 新建本地分支并切换到新建的分支上

git checkout -b 1.1.3

// 删除本地的新建分支1.1.3,如果你当前就是在1.1.3上,请切换到其他分支上再删除1.1.3

git checkout 1.1.1 // 切换到1.1.1分支上

git branch -d 1.1.3 // 删除1.1.3的本地分支

 

// 合并其他分支的某个文件到当前分支下

git checkout 1.0.2 aaaa.java

1.0.2表示你要合并的哪个分支,后边的表示你的文件

 

// git .gitignore无效问题

把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

 

// 删除远程分支

git push --delete origin 分支名

// 删除本地分支

git branch -m 旧分支名 新分支名

// 本地和远端分支重新命名

本地分支重命名
    git branch -m oldbranchname newbranchname
修改远端分支(可以先删除远端分支,然后将本地的分支push到远端)
    git push origin --delete oldbranchname
    git push origin newbranchname(这个分支必须本地有,如果没有需要现创建本地分支执行:git checkout -b newbranchname)

 

// remote:HTTP Basic:Access denied

remote: HTTP Basic: Access denied出现这个错误的时候

git config --system --unset credential.helper

执行完上边一行代码之后,如果没有报错,就再download一下代码

如果报错了,也是报跟权限相关的并且是error开头的,那么暴力点,直接把git卸载重新安装,我就是这么解决的。

 

// git pull 错分支了

本来应该pull B分支的,结果pull A分支了,如何解决这个问题呢?我这的解决办法是去除了commit本地的记录,直接暴力还原到之前的版本,步骤如下

1、运行git reflog命令查看你的历史变更记录,如下:

fdb70fe HEAD@{0}: pull origin newpbft: Fast-forward

40a9a83 HEAD@{1}: checkout: moving from guan to master

2、然后用git reset --hard HEAD@{n},(n是你要回退到的引用位置)回退。

比如上图可运行 git reset --hard 40a9a83

搞定

你可能感兴趣的:(git)