命令
git init
初始化git版本库,repository,使该文件夹中的所有文件都可以被git管理,每个文件的修改,删除,git都可以跟踪,如cd到learngit文件夹下使用git init命令,会多一个.git文件,如果没有,用ls -ah可以看见
git add
修改文件之后,用git add命令将文件添加到仓库
git commit
将add后的文件提交到仓库,用git commit -m "wrote a redme file"命令实现,-m后面是本次提交的说明
注意:可以多次git add后用一次git commit提交
git status
git status可以时刻掌握仓库当前的状态,如有文件更新但是没有添加和提交
git diff readme.txt
可以查看文件上次的修改内容
git log
显示从最近到最远的提交日志,如果嫌输出信息太多,可以加上--pretty=online参数,输出的一大串类似1094adb... 这样的字符是版本号,即commit id
在git中,用HEAD表示当前的版本,即git log输出的最新的commit id版本,上一个版本用HEAD^ 表示,上上一个版本就是HEAD^^ ,再往前的版本比如前100的版本可以用HEAD~100表示
git reset --hard HEAD^
回退到上一个版本
git reset --hard 1094a
回退到上一个版本后怎么返回刚才的最新版本,使用版本号回退即可,其中版本号没必要写全,写前几位就可以,git会自动寻找
git reflog
记录每一次的命令,如果已经回退上一个版本并关闭电脑但是又想恢复最新的版本可以使用该命令找到最新版本的commit id
git push origin master
将本地master分支的最新修改推送到远程的master分支
原理
- 工作区:电脑中能见到的目录,即我们的learngit文件夹就是工作区
- 版本库:工作区有一个隐藏的目录.git,这个不算工作区,而是git的版本库
git的版本库中最重要的是stage或者叫index的暂存区,以及git自动创建的第一个分支master,以及指向master的指针HEAD
- git add就是将修改的文件提交到暂存区
- git commit就是将暂存区的所有文件提交到master分支
分支管理
典型问题
如何关联远程仓库
1、本地创建仓库,并使用git init添加git 版本库
2、使用git add *将所有文件提交到版本库的暂存区
3、使用git commit -m ""将暂存区的文件提交到本地的master分支
4、git remote add origin git@github.com:michaelliao/learngit.git,关联远程仓库
5、git push -u origin master,将本地仓库的所有内容推送到远程仓库中,使用-u参数是因为可以使第一次推送时,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令