git init命令把这个目录变成Git可以管理的仓库
命令git add告诉Git,把文件添加到仓库
命令git commit告诉Git,把文件提交到仓库: git commit 后面最后加上版本信息,好记录
git status命令可以让我们时刻掌握仓库当前的状态
git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,查看对文件进行了什么操作
git log命令 查看提交日志 ----- 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:
git reset命令 回退上一个版本 git reset --hard head^ 回到上一个版本
git reflog 记录你的每一次命令
git checkout -- file可以丢弃工作区的修改:(虽然放在暂存区里,但是未commit提交,可以用checkout命令丢弃在暂存区的修改,也可用在工作区)
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区(把暂存区清空)
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
$ makdir ~/hello-world //创建一个项目hello-world
$ cd ~/hello-world //打开这个项目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m 'first commit'//提交更新,并注释信息“first commit”
$ git remote add origin git@github.com:defnngj/hello-world.git //连接远程github项目
$ git push -u origin master //将本地项目更新到github项目上去
github push 提交时登陆 的话要先退掉网页的github 不然会提示多个账户登陆
master才是指向提交的,所以,HEAD指向的就是当前分支。
git checkout -b dev 我们创建dev分支,然后切换到dev分支
git branch 用git branch命令查看当前分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成
用git log --graph命令可以看到分支合并图
git log --pretty=oneline 每个日志只打印一行
git reflog 查看 git 指针
git reset --hard 索引值 (用来回退版本)
reset 命令的三个参数对比
--soft 参数
仅仅在本地库移动head指针
--mixed 参数
在本地库移动head指针
重置暂存区
--hard 参数
在本地库移动head指针
重置暂存区
重置工作区
git diff 文件名 (显示文件差异)