一、新建仓库
git init
初始化仓库,可以发现当前目录下多了一个.git的目录git remote add origin git@github.com:joel/test.git
本地仓库与远程仓库建立联系,origin是默认名称,可更改git push -u origin master
把本地库的所有内容推送到远程库上。由于远程库是空的,我们第首次推送master分支时,加上了-u
参数(推送和关联),后续推送可简化指令。
二、常用修改指令
git add xxx.txt
添加,但是不提交,git add.
添加所有文件。git commit -m "提交描述"
提交,只有add后提交才有效。
三、常用查看指令
-
git status
查看仓库当前的状态 -
git diff 文件名
查看对文件做什么修改 -
git diff 版本号1 版本号2 --stat
查看两个版本的差异的文件列表,包括被修改行数和增删图。参数改为--name-status
前面显示修改说明字母(A,M等),无行数 -
git branch
查看当前所在的分支。git branch
命令会列出所有分支,当前分支前面会标一个*
号 -
git log
显示从最近到最远的提交日志 -
git remote
查看远程库的信息,加-v
显示详细内容
四、撤销修改和版本回退
git checkout -- 文件名
把没暂存(即没add)的干掉,或者说,丢弃工作区,回到到暂存状态git reset HEAD 文件名
把暂存的状态取消,工作区内容不变,但状态变为“未暂存”。
简单来说,没有add过的修改,只需要git checkout -- 文件名
即可撤销;add 过的修改,先git reset HEAD 文件名
变成没add 过的修改,再git checkout -- 文件名
撤销。
git reset --hard HEAD^
会回退到上一个版本git reset --hard 某版本号前几位
回退到指定版本
五、分支管理
-
git branch dev
,新建分支是新建指针,指向当前commit -
git checkout dev
切换到dev分支 -
git checkout -b dev
创建一个新的分支dev,并切换到dev分支。相当于以下两条命令:git branch dev
和git checkout dev
-
git merge dev
这是在master分支上执行的命令,把dev分支合并到master分支上 -
git branch -d dev
删除已合并的分支。 -
git rebase master
变基。在当前分支(非master)下执行该命令,则相当于把当前分支和mater分支合并,和merge操作类似,但提交历史不同,rebase操作的log更干净。