Git - newer2/Blog GitHub Wiki
git安装完成后全局配置用户名、邮箱
$ git config --global user.name "user name on github"
$ git config --global user.email "user email on github"
SSH 密钥生产与绑定
- ssh-keygen -t rsa -C "[email protected]" 创建SSH Key
- 将ssh公钥(id_rsa.pub)贴到github上
- ssh -T git@github 测试是否成功
两种本地与仓库关联情形
- 本地创建仓库 本地手动创建新仓库,与github上创建的空仓库关联,将本地仓库内容推送到github仓库
- git init 将当前目录变为git可管理的仓库(生成.git目录)
- git add 将需要提交的所有修改文件放到暂存区
- git commit -m “first commit” 将暂存区的所有修改提交到分支;-m本次提交说明,方便将来通过log查看每次改动了哪些内容;一旦提交后,若未对工作区做任何修改,git status查看就是'clean'的
- git remote add origin [email protected]:newer2/Blog.git 将本地仓库和github仓库关联起来
- git push -u origin master 本地仓库内容推送到远程;-u不但会将本地matser分支内容推送到远程新的master分支,而且还会将本地master分支和远程的关联起来以后推送或拉取时就可以简化命令了
- git push origin master 通常情况下的推送命令,origin是git默认远程库的名字
- 远程仓库clone本地 直接从github上clone,本地修改后,再推送到github仓库
- git clone [email protected]:newer2/Blog.git clone本地库
- git clone [email protected]:newer2/Blog.wiki.git clone wiki到本地
- git还支持多种协议,eg:git clone https://github.com:newer2/Blog.git, 使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https
- git add 将修改文件存放到暂存区(stage),git commit 仅仅!!将暂存区文件提交到分支(而不是当前工作区的所有修改都会被提交到分支),git push将本地分支推送到GitHub仓库
提交历史,显示提交日志,--prtty=oneline参数,提供简化信息 其中一大串数字是commit id版本号,Git中HEAD表示当前版本,上一个版本是HEAD^,往上100版本是HEAD~100
$ git log
$ git log --pretty=oneline
回退到上一版本,可以使用git log中的commit id作为该命令参数来替换HAED
$ git reset --hard HEAD^
将目标文件的修改回退到工作区的HEAD版本,即当前最新版本
$ git reset HEAD target.file
命令历史,当回退后像恢复之前版本,使用该命令查看最近commit id,从而返回特定版本
$ git reflog
查看工作区和版本库里面最新版本的区别
$ git diff HEAD -- target.file
将目标文件在工作区的修改全部撤销,讲文件恢复到最近一次add或commit时的状态;或者你可以手动恢复文件
$ git checkout -- target.file
删除某一文件后,若确实要从版本库删除该文件,使用git rm target.file,并git commit;若错误删除,使用git checkout -- target.file用版本库版本替换工作区的版本
参考: