git是一个管理仓库工具,支持写日子,恢复以前的数据非常有用。
Warning:如果文本文件不保存就上传的话,会出很多问题,一定要先保存,关掉一遍再说
//打开文件夹
cd /e/learning/learngit
//然后就可以在这个文件夹内创建仓库
$ mkdir [repository name]
//让git获取权限
$ git init
$git commit -m "change items" //每次改变传递的描述
$git log //获取日志
$git relog //这个可以获取每次改变版本号,方便恢复
$ git reset --hard HEAD^ //退回了上一个版本
$ git reset --hard [version] //这里是退后到某个版本,用relog就可以获取
$git log //查看日志
$git relog //查看各种修改的版本
$git status //查看状态,是否出现修改没有添加到仓库
$git diff //这里可以看到更改以前的不同
如果每次修改不用git add 添加的话,都会报出没有提交,所以每次修改完成,都要git add一下,然后最后一次提交git commit,这样才可以让暂存区的东西一起提交。
git checkout -- [file] //总之,就是让这个文件回到最近一次`git commit`或`git add`时的状态。
git reset HEAD <file> //这样可以把add以后,但是没有commit的东西,退回修改
$rm [file]
$git rm [file]
$ git commit -m "reason"
$ git remote add origin [email protected]:Nineliebehind/[本地仓库名称].git
$ git push -u origin [branch name] //只有第一次要这样,之后可以简化代码
git push origin master //这样就可以把最新的东西推上
还可以删除本地仓库找到地方
$rm -rf .git
$ git clone [email protected]:michaelliao/[仓库名字].git
$git checkout -b [branch name]
$git branch
git checkout [branch name]
进入某一分支,然后就可以把别的分支合并到这个分支
$git merge [branch name]
git branch -d [branch name]
git有时候你开发到一半,要暂停去修复bug.你就要保留你现在内容,而且暂存区要是干净的,你可以调用如下命令
$ git stash
这样就创建了一个快照类似的东西而且还是干净的,当你需要回来工作时候有两种恢复方法
git stash apply //这样slash内容不会删除,你要调用git stash drop删除
//第二种直接删除,连同slash
git stash pop
git tag [tag name] [commit id] //版本可写可不写
git show [tag name] //这样就可以看到这个标签的详细信息
git tag -a [tag name] -m "descripe" [commit id] //也能提交描述
git不能自动推送标签需要用
git push origin [tag name] //这样才可以推送标签去远程
git push origin --tags //一次性推送所有标签
git 删除标签
//首先要删除本地的标签
git tag -d [tag name]
//然后删除远端的标签
git push origin:refs/tags/[tag name]