'''
1.常用
'''
$ git remote add origin git@github.com:yeszao/dofiler.git # 配置远程git版本库
$ git pull origin master # 下载代码及快速合并
$ git push origin master # 上传代码及快速合并
$ git fetch origin # 从远程库获取代码
$ git branch # 显示所有分支
$ git checkout master # 切换到master分支
$ git checkout -b dev # 创建并切换到dev分支
$ git commit -m "first version" # 提交
$ git status # 查看状态
$ git log # 查看提交历史
$ git config --global core.editor vim # 设置默认编辑器为vim(git默认用nano)
$ git config core.ignorecase false # 设置大小写敏感
$ git config --global user.name "YOUR NAME" # 设置用户名
$ git config --global user.email "YOUR EMAIL ADDRESS" # 设置邮箱
'''
2.修改与提交
'''
$ git status # 查看状态
$ git diff # 查看变更内容
$ git add . # 跟踪所有改动过的文件
$ git add <file> # 跟踪指定的文件
$ git mv <old> <new> # 文件改名
$ git rm <file> # 删除文件
$ git rm --cached <file> # 停止跟踪文件但不删除
$ git commit -m “commit message” # 提交所有更新过的文件
$ git commit --amend # 修改最后一次提交
'''
3.查看提交历史
'''
$ git log // j是下,k是上,q是退出 # 查看提交历史
$ git log -p <file> # 查看指定文件的提交历史
$ git reflog # 查看比较全的历史,包括版本回退等
$ git blame <file> # 以列表方式查看指定文件的提交历史
'''
4.版本回退 # HEAD 是一个特别指针。在 git 中,它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名。
'''
$ git reset --hard HEAD^ # 回退到上一个版本
$ git reset --hard HEAD # 撤消工作目录中所有未提交文件的修改内容
$ git reset --hard <version> # 撤销到某个特定版本
$ git checkout HEAD <file> # 撤消指定的未提交文件的修改内容
$ git checkout -- <file> # 同上一个命令
$ git revert <commit> # 撤消指定的提交
'''
5.stash
'''
$ git stash # 暂时储存当前的更改
$ git stash list # 显示暂存列表list
$ git stash apply # 应用最新的暂存区的更改
$ git stash pop # 应用最新的暂存区的更改,并删除最新暂存区
'''
6.merge
'''
$ git cherry-pick <commit> # 只合并某次commit
其他
1.git pull = git fetch + git merge 功能一样,但是原理不同。
前者;拉取并直接合并
后者:先拉取代码到本地,然后再merge。---推荐使用。
2.git rebase与git merge的区别
多人开发还是选用git merge吧 ,利己利人。
3.拉取远程分支,本地建立相同分支。
git fetch origin 远程分支: 本地分支 。 注意:本地分支不写,则和远程分支一个名字
git checkout 本地分支
4.撤销到某个版本
适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
git reset [--mixed |--soft | --hard]
例如:git reset --soft HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
| 参数取值 | 特点 | 推荐 |
|---|---|---|
| mixed | 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作默认参数 | |
| soft | 不删除工作空间改动代码,撤销commit,不撤销git add . | - |
| hard | 删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后,就恢复到了上一次的commit状态。 | 一般回退版本时使用。恢复到了某个版本,包含这个版本。 |
4.撤销某个版本
revert[反转]
其实是没有直接让远端代码回复到某次的指令,实现撤销push的思路如下:
- 先让代码恢复到想要恢复的前一次提交记录。
- 重新提交代码,覆盖端上的代码,就相当于撤销了push 的提交。
reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了。
而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的。