git大百科

1,命令:

git忽略提交文件:git rm --cache .idea/workspace.xml

因为你已经把他加到tracked file里了 用
git rm --cached java/.idea/workspace.xml
把他移除 .gitignore这个文件是用于 untracked 文件的忽略列表
你用add将文件标记为 tracked 状态 .gitignore就对其无效了

2,如果您有新的远程git仓库,以前旧的废弃不用。  试用一下命令,将旧的git复制到新的git远端上。

cd old.git

git push --mirror git@gitlab.com/****/new.git

再从新的git远端服务器上,拉取代码即可。

这种方法,新的git远端代码和旧的git远端代码,保持一致。包括所有的tags,branch。

3,同一台机器存在多个git账户。

比如:公司使用gitlab.*****.com 而自己使用 github。

配置config 目录:~/.ssh。  git默认是无config文件,自己新建一个 config。请看我的.ssh目录文件:

config        id_rsa.pub    id_rsa_penn.pub
id_rsa id_rsa_penn known_hosts

git使用 rsa来区分身份。 需新建"id_rsa_penn", 命名要区分区分"id_rsa"。 请看config文件:

Host gitlab.***.com
HostName gitlab.***.com
User git
IdentityFile ~/.ssh/id_rsa Host github.com
HostName github.com
User @qq.com
IdentityFile ~/.ssh/id_rsa_penn

git访问config,通过 不同的host,来找到对应的 IdentityFile,即rsa。

当你从github,clone,即选择的是id_rsa_penn。 而从公司gitlab.****.com,选择的是id_rsa。

好了,这样你可以提交代码了。

另外 你可能配置了全局的账户:

git config --global --add user.name "penn"
git config --global --add user.email "****.com"

而现在使用两个账户 so,全局global的 user就不可以使用了。 请使用当前库下的local user。

取消全局:

git config --global --unset user.name
git config --global --unset user.email

进入到你的 “git库”目录下:

git config --local --add user.name "公司/github"
git config --local --add user.email "公司/github"

3,git撤销commit

git reset --hard <commit_id>
git push origin HEAD --force

根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容。

上一篇:【IOS】IOS高速入门之OC语法


下一篇:Python基础教程【读书笔记】 - 2016/7/5