以下总结,不敢说最全,却是最常用的,拿走不谢~
1、工作区和暂存区
版本库(Repository)
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
2、撤退
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。比如:
1)上一个版本就是HEAD^
git reset --hard HEAD^
2)上上一个版本就是HEAD^^
git reset --hard HEAD^^
3)未来的某个版本(只要当前的还没有关闭,就可以找到之前的command ID)
git reset --hard 3628164
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库
git reset --hard commit-id2(ID)
git push origin HEAD --force
1)git checkout -- test.txt 用版本库里的版本替换工作区的版本
2)git rm test.txt git commit -m 'delete a file' 删除文件,并将暂存区的文件也删除
3)git reset --hard HEAD^ 回退到上一个版本
4)git rm test.js git commit -m ; 删除本地文件,并删除版本库中文件
5)git checkout -- test.js 把误删的文件恢复到最新版本
3、远程仓库
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master第一次推送master分支的所有内容
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
4、分支与合并分支
查看当前的状态:git status,如果有文件被修改过,用git diff查看那些被修改过(查看的是工作区的内容是否被修改)
查看修改的内容:git diff
查看某个文件最近一次修改diff :git diff HEAD^ HEAD filename
查看提交历史:git log / git log --pretty=oneline
查看分支:git branch
查看远程分支:git branch -r
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -D <name>
删除远程分支:1)git branch -r -d origin/branch-name 2)git push origin :branch-name
要查看远程库的信息,用git remote 或者 git remote -v
就必须创建远程origin的dev分支到本地:git checkout -b dev origin/dev,
把该分支推送到远程库对应的远程分支上 git push origin dev
就必须创建远程origin的dev分支到本地 git checkout -b dev origin/dev
解决冲突:
1)git pull --》失败,因为没有指定本地dev分支与远程origin/dev分支的链接
2)git branch --set-upstream dev origin/dev -》设置dev和origin/dev的链接
3)git pull 在pull
git比较远程和本地的代码:
1)git fetch origin
2)git diff master origin/master
git 版本回退
1)本地分支版本回退的方法
● 找到要回退的版本的commit id:git reflog
● 接着回退版本:git reset --hard Obfafd
2)自己的远程分支版本回退的方法
● 首先回退本地分支:git reflog,git reset --hard Obfafd
● 然后强制推送到远程分支:git push -f
3)公共远程分支版本回退的问题,比如master分支
● git revert HEAD //撤销最近一次提交
● git revert HEAD~1 //撤销上上次的提交,注意:数字从0开始
● git revert 0ffaacc //撤销0ffaacc这次提交
其他情况:
操作如下:
1.按键盘字母 i 进入insert模式
2.修改最上面那行黄色合并信息,可以不修改
3.按键盘左上角"Esc"
4.输入":wq",注意是冒号+wq,按回车键即可