因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建SSH Key:$ ssh-keygen -t rsa -C "email@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
用记事本打开id_rsa.pub
,复制内容到github帐号下Settings->SSH and GPG Keys,点击New SSH Key,粘贴内容到Key,Title自行设置。
克隆远程库
$ git clone git@github.com:galepai/C-11.git 或 $ git clone https://github.com/galepai/C-11.git
与远程库连接,推送本地库至远程库
$ git remote add origin git@github.com:galepai/Cpp11.git
$ git push -u origin master
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:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
HEAD 最近一个提交
HEAD^ 上一次
<commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到.
分支使用
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
.gitignore规则不生效
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'