Git Learning
创建本地版本库
$ git init
版本操作
新增文件,提交
$ git add <filename>
$ git commit -m "some hints"
查看日志
# 一行显示log信息
$ git log --pretty=oneline
版本退回
# 退回到上一个版本
$ git reset --head HEAD^
# 退回到上两个版本
$ git reset --head HEAD^^
# 退回前第N个版本
$ git reset --head HEAD~N
# reset 到commit id,可以在git reflog中找到commit id
$ git reset --head <commit id>
git log
查看提交历史,确定要退回到哪个版本
git reflog
查看命令历史,确定要去到未来的哪个版本
管理修改
# 查看git当前状态
$ git status
# 查看当前工作区和版本库文件的不同
$ git diff HEAD -- <filename>
# 撤销修改
$ git checkout -- <filename>
# 把readme.md在工作区的修改全部撤销
$ git checkout -- readme.md
文件删除
$ rm <filename>
$ git rm <filename>
$ git commit -m "remove file..."
# 删除恢复,其实是将版本库的文件加载到工作区
$ git checkout -- <filename>
远程仓库
创建ssh-key
$ ssh-keygen -t rsa -C "youremail@example.com"
# 一路回车
那么在.ssh的目录里就会有两个文件,id_rsa
和id_rsa.pub
,id_rsa
是私钥,不要泄露,id_rsa.pub
是公钥,将公钥中的信息复制到Github的ssh-keys设置中(网页上操作)。
添加远程库
$ git remote add origin git:github.com:yourgithub/****.git
****.git指你在Github上的某个仓库
# 把本地库推送到Github远程库上
# 如果出现<reject>将 -u 改成 -fu,强制覆盖
$ git push -u origin master
克隆远程库
$ git clone git@github.com:<who's>/<gitname>.git
管理分支
创建、合并、删除分支
# 创建名叫dev的分支
$ git branch dev
# 切换到这个分支下
$ git checkout dev
# 以上两步可以用一步完成
$ git checkout -b dev
# 查看分支
$ git branch
# 将分支dev合并到master上,先切换到master
# git merge 是将指定分支合并到当前分支
$ git checkout master
$ git merge dev
# 删除分支
$ git branch -d <name>