创建版本库
切换到一个存放版本库的目录,执行git init
创建版本库后有两个选择:
1、将本地库的内容推送到远程库
a. 添加远程主机git remote add origin git@github.com:michaelliao/learngit.git
b. git push -u origin master 将本地库的所有内容推送到远程库(-u 会把本地master分支和远程master分支关联,之后就不需要用这个参数了)
2、将远程库的内容clone到本地库
a. git clone git@github.com:michaelliao/learngit.git(git使用的是ssh协议)
git add 把文件添加到暂存区。
git commit -m (对本次提交的描述) 把文件提交到分支。
版本回退:
git status 查看当前库的状态
git diff 查看修改的内容
git log -graph 查看提交日志
git reflog 查看历史命令,以便回到未来版本(即回退后又想回来)
HEAD 代表当前版本,HEAD^代表当前版本的上一个版本,HEAD~100代表当前版本的上100个版本。
git reset –hard HEAD^ 回退到上一个版本。
git checkout – file 让file回到最后一次git add 或者git commit状态
git reset HEAD file 把暂存区的修改回退到工作区
删除文件
rm file 删除工作区的文件
git rm file (没commit之前可以用git checkout –file 恢复到和版本库一样)
git commit -m
删除版本库的文件。
管理远程主机 remote
git remote 列出远程主机
添加远程主机
git remote add origin git@github.com:michaelliao/learngit.git
micheaelliao为账户名
origin 为远程库的名字
git remote rm 删除远程主机
git remote rename <原主机名><新主机名>
远程与本地库互动
git push -u origin master 将本地库的所有内容推送到远程库(-u 会把本地master分支和远程master分支关联,之后就不需要用这个参数了)
git fetch <远程主机> 从远程获取最新版到本地,不merge(获取所有branch,也可以指定branch)
git pull 从远程获取最新版merge到本地(相当git fetch再git merge)
从远程主机克隆版本库
git clone -o 版本库地址(-o 参数指定主机名,默认orgin)
分支
git branch -a 查看所有分支
git branch -av 查看本地跟踪分支对应的远程分支
git checkout -b 创建并且切换到分支(相当与git branch git checkout bName)
git branch -D 删除分支
git merge/rebase 合并指定分支到当前分支
git stash 保存当前修改
git stash list 查看保存的修改
git stash pop 恢复保存的修改,并且删除stash