目录
创建仓库
初始化仓库
git init
ls -a
.git # git目录用来跟踪版本库
文件添加到仓库
git add a.txt
文件提交到仓库
git commit -m “v1” # 备注v1
文件上传到远程库
git push -u orgion master
查看仓库状态
git status
查看历史版本
git log # 查看当前状态历史记录,--pretty=oneline 简单输出
git reflog # 查看所有历史记录
f026a6c (HEAD -> master) HEAD@{0}: commit: v3
dc1e2ca HEAD@{1}: commit: v2
abdea28 HEAD@{2}: commit (initial): v1
查看工作区和版本库里最新版本的区别
git diff HEAD -- a.txt
管理修改
从版本库回退
git reset --hard HEAD^ # HEAD@{0}表示当前版本,回退到HEAD版本
git reset --hard HEAD^^ # 回退到HEAD@{2}版本
# 或者
git reset --hard HEAD~1
git reset --hard HEAD~2
# 或者
git reset --hard commit_id # 回退到指定版本
撤销工作区的修改
git checkout -- a.txt
# 一种是a.txt修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态;
# 一种是a.txt已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。
撤销暂存区的修改
git reset HEAD a.txt # 删除暂存区的文件
删除文件
git rm a.txt # 如果一个文件已经被提交到版本库,那么永远不用担心误删
git commit -m "remove a.txt"
分支管理
创建分支
git branch dev # 创建分支dev
git checkout dev # 切换到分支dev
# 或者
git checkout -b dev # git checkout命令加上-b参数表示创建并切换,相当于以上两条命令
查看分支
git branch
切换回master
git checkout master
master合并分支后再删除分支
git merge dev
Updating 78d2980..745616c
Fast-forward # 并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快
b.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 b.txt
git branch -d dev
远程仓库
创建新的仓库(推荐直接克隆远程库)
echo "# test2.0" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:testder/test2.0.git
git push -u origin master
# 加上了,-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来
# 在以后的推送或者拉取时就可以简化命令 git push
关联已存在的远程仓库并上传
git remote add origin git@github.com:testder/test2.0.git # 关联两个远程库,名字需不同
git remote add origin02 git@github.com:testder/test2.0.git
git push -u origin master
克隆远程从库
git clone git@github.com:testder/tools2.0.git # 克隆的已经建立好orgion,无需再次关联
git remote -v # 查看远程库信息
git remote rm orgion # 删除远程库