看了廖雪峰老师的教程,这里总结记录一下。
git init //初始化一个空的仓库在当前文件夹下
git add xxx.txt yyy/ .zzz/ //可以依次add几个文件,可以add一个文件夹,会自动把文件夹下的所有东西都add
git commit -m"comment" //将staged的changes commit到仓库的某个分支
git status //随时可以查看当前工作区/暂存区/master之间的差异状态
git diff xxx.txt //比较工作区和master?之间的区别?没搞清楚比较哪个和哪个......
git diff HEAD -- xxx.txt //比较工作区和版本库的区别
git log //可以查看commit的历史记录
git reflog // 查看版本改动情况
git reset --hard HEAD^ //回到上一次commit后的状态
git reset --hard HEAD~100 //回到上100次commit后的状态
git reset --hard commit_id(版本号) //回到该commit_id后的状态
git checkout -- xxx.txt //让xxx.txt回到最近一次git add或git commit的状态,也就是说如果暂存区没有changes,就直接回到版本库的状态,如果暂存区有changes没提交,那就回到暂存区那个状态
git reset HEAD xxx.txt //让xxx.txt回到暂存区的状态,并撤销暂存区的修改,HEAD表示最新版本的意思,这句话执行完了看git status,暂存区是空的,工作区相比版本库肯定有修改
git rm xxx.txt //删除某个文件,与add同级的命令,都将这个增加或删除先放到暂存区,接着执行git commit可以提交到版本库上,就真的删啦
git remote add origin git@github.com:userName/respositoryName.git //将本地这个仓库和远程的某个仓库关联起来,origin表示远程库的名字,这个地址也可以用http://....,不过使用https
除了速度慢。。?
git push -u origin master //把本地库的内容推送到远程,实际上是把当前分支master
推送到远程,由于远程库是空的,第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master //随时使用,将本地master推送到远程库的master
git push origin 分支名 //将本地分支名的分支推送到远程库的分支名分支
git branch --set-upstream dev origin/dev //将本地dev分支与远程origin/dev分支关联起来
git checkout -b branch-name origin/branch-name //在本地创建和远程分支对应的分支
git checkout -b dev //创建分之dev并切换到dev分支
git branch //查看当前分支
git checkout 分支名 //切换到某个分支
git merge 分支名 //merge
git branch -d 分支名 //删除某分支