伟大的git 操作命令总结
2017-09-07 14:10
204 查看
1 git init 初始化一个git仓库
2 添加文件到git仓库,分两步。
第一步:git add <file> ,可多次使用,添加多个文件
第二部:git commit 提交(实际上就是把暂存区的所有内容提交到当前分支)
3 git status 查看仓库当前状态
4 git diff <file> 查看修改内容
5 HEAD 指向的版本是当前版本
git reset --hard commit_id 回到指定版本
回退前,可用git log查看提交历史,以便确定会退到哪个版本
回退后,想重返未来,可用 git reflog查看命令历史,以便确定回到未来哪个版本。
6 工作区和暂存区:
需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git
commit就可以一次性把暂存区的所有修改提交到分支。
7 管理修改:
第一次修改 git add
第二次修改 git add
一起提交 git commit
git diff HEAD -- xxxxx.txt 查看工作区和版本库里面最新版本的区别
8 撤销修改:
git status 查看当前状态
git checkout -- file 丢弃工作区的修改
git checkout -- xxxxx.txt 意思就是把xxxxx.txt 文件在工作区的修改全部撤销,有2种情况:
第一种是xxxxx.txt 从修改后还没被放到暂存区,现在撤销修改就回到和版本库一模一样的状态。
第二种是xxxxx.txt
已经添加到暂存区,又作了修改,现在撤销修改就会回到添加到暂存区后的状态。
一句话解释就是,让xxxxx.txt
文件回到最近一次 git commit 或者git add 的状态。
git
reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新回到工作区。
git
reset 既可以回退版本,也可以把暂存区的修改回退到工作区。HEAD,表示最新的版本。
9
删除文件:
git
add text.txt 先添加一个新文件到git
git
rm text.txt 从版本库删除该文件
另一种情况是误删,如果版本库里面还有:
git
checkout -- test.txt git checkout 其实就是用版本库里面的版本替换工作区的版本,无论工作区是修改还是删除,都可以还原。
10
创建与合并分支
mater 分支是一条线,每次提交,分支都会向前移动一步,HEAD 不是指向提交,而是指向master(当前分支),master才指向提交。
当创建一个新的分支,比如dev,git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev
从现在开始,对工作区的修改和提交只针对dev分支,比如新提交一次后,dev指针向前移动一步,而matser不变。
加入我们在dev上的工作完成了,就可以把dev合并到master上了。最简单的办法就是把matser指向当前dev提交。
合并后,可以删除dev分支,删除dev分支就是把dev指针给删掉。
完整流程:
git checkout -b dev 创建并进入新dev分支
git branch 查看当前分支
在dev分支开发完成,提交
git add xxxx.txt
git commit -m "branch dev"
git checkout master 切换回master分支
git merge dev 把dev分支的工作成果合并到master分支上。
git merge --no-ff -m "merge with no-ff" dev 表示禁用 fast forward,合并后的历史有分支,能看出来曾经做过合并
git merge命令用于合并指定分支到当前分支。
git branch -d dev 删除dev分支。
11 解决冲突:
如果master和dev分支各自都有了新的提交
这种情况下 git merge dev 无法快速合并,只是试图把各自的修改合并起来,但是这种合并可能会有冲突。
当无法合并时我们用git status 看到冲突文件,进入解决。
git 用<<<<<< ,=========,>>>>>>>标记出不同的分支,修改后再提交。
同时,git log -- graph 命令可以看到分支合并图。
12 bug 分支:
当你在dev开发进行一半时,还没法提交,却接到一个bug的紧急修复任务,很自然的你想创建一个bug分支来修复,但是当前修改还未提交。这时候,你可以使用 git stash 功能,把工作现场存贮起来,等以后恢复现场后继续工作。
git stash 存贮你的修改,恢复到仓库最后一个版本的内容。
当新建分支修复bug后,再回到dev分支,将存贮的内容恢复。
方式1: git stash apply 恢复后,stash内容并不删除,需要使用git stash drop来删除。
方式2: git stash pop 恢复的同时把stash内容也删了。
git stash list 查看存贮在stash里面的内容。(相当于一个堆栈,先进后出)。
git stash apply stash@{0} 恢复指定的stash
13 删除分支
git branch -d xxxx 删除xxxx分支
如果xxxx分支有未提交的内容,可以通过 git branch -D xxxx 强制删除。
14 多人协作
git remote -v 查看远程库信息(新建的分支如果不推送到远程,对其他人是不可见的)
git push origin branch-name 从本地推送分支
git checkout -b banch-name oringin/branch-name 从本地拉取分支,取名一样(本地和远程分支名字一样,但是意义不一样)
git pull 从远处抓取分支,如果有冲突,先解决冲突。
2 添加文件到git仓库,分两步。
第一步:git add <file> ,可多次使用,添加多个文件
第二部:git commit 提交(实际上就是把暂存区的所有内容提交到当前分支)
3 git status 查看仓库当前状态
4 git diff <file> 查看修改内容
5 HEAD 指向的版本是当前版本
git reset --hard commit_id 回到指定版本
回退前,可用git log查看提交历史,以便确定会退到哪个版本
回退后,想重返未来,可用 git reflog查看命令历史,以便确定回到未来哪个版本。
6 工作区和暂存区:
需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git
commit就可以一次性把暂存区的所有修改提交到分支。
7 管理修改:
第一次修改 git add
第二次修改 git add
一起提交 git commit
git diff HEAD -- xxxxx.txt 查看工作区和版本库里面最新版本的区别
8 撤销修改:
git status 查看当前状态
git checkout -- file 丢弃工作区的修改
git checkout -- xxxxx.txt 意思就是把xxxxx.txt 文件在工作区的修改全部撤销,有2种情况:
第一种是xxxxx.txt 从修改后还没被放到暂存区,现在撤销修改就回到和版本库一模一样的状态。
第二种是xxxxx.txt
已经添加到暂存区,又作了修改,现在撤销修改就会回到添加到暂存区后的状态。
一句话解释就是,让xxxxx.txt
文件回到最近一次 git commit 或者git add 的状态。
git
reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新回到工作区。
git
reset 既可以回退版本,也可以把暂存区的修改回退到工作区。HEAD,表示最新的版本。
9
删除文件:
git
add text.txt 先添加一个新文件到git
git
rm text.txt 从版本库删除该文件
另一种情况是误删,如果版本库里面还有:
git
checkout -- test.txt git checkout 其实就是用版本库里面的版本替换工作区的版本,无论工作区是修改还是删除,都可以还原。
10
创建与合并分支
mater 分支是一条线,每次提交,分支都会向前移动一步,HEAD 不是指向提交,而是指向master(当前分支),master才指向提交。
当创建一个新的分支,比如dev,git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev
从现在开始,对工作区的修改和提交只针对dev分支,比如新提交一次后,dev指针向前移动一步,而matser不变。
加入我们在dev上的工作完成了,就可以把dev合并到master上了。最简单的办法就是把matser指向当前dev提交。
合并后,可以删除dev分支,删除dev分支就是把dev指针给删掉。
完整流程:
git checkout -b dev 创建并进入新dev分支
git branch 查看当前分支
在dev分支开发完成,提交
git add xxxx.txt
git commit -m "branch dev"
git checkout master 切换回master分支
git merge dev 把dev分支的工作成果合并到master分支上。
git merge --no-ff -m "merge with no-ff" dev 表示禁用 fast forward,合并后的历史有分支,能看出来曾经做过合并
git merge命令用于合并指定分支到当前分支。
git branch -d dev 删除dev分支。
11 解决冲突:
如果master和dev分支各自都有了新的提交
这种情况下 git merge dev 无法快速合并,只是试图把各自的修改合并起来,但是这种合并可能会有冲突。
当无法合并时我们用git status 看到冲突文件,进入解决。
git 用<<<<<< ,=========,>>>>>>>标记出不同的分支,修改后再提交。
同时,git log -- graph 命令可以看到分支合并图。
12 bug 分支:
当你在dev开发进行一半时,还没法提交,却接到一个bug的紧急修复任务,很自然的你想创建一个bug分支来修复,但是当前修改还未提交。这时候,你可以使用 git stash 功能,把工作现场存贮起来,等以后恢复现场后继续工作。
git stash 存贮你的修改,恢复到仓库最后一个版本的内容。
当新建分支修复bug后,再回到dev分支,将存贮的内容恢复。
方式1: git stash apply 恢复后,stash内容并不删除,需要使用git stash drop来删除。
方式2: git stash pop 恢复的同时把stash内容也删了。
git stash list 查看存贮在stash里面的内容。(相当于一个堆栈,先进后出)。
git stash apply stash@{0} 恢复指定的stash
13 删除分支
git branch -d xxxx 删除xxxx分支
如果xxxx分支有未提交的内容,可以通过 git branch -D xxxx 强制删除。
14 多人协作
git remote -v 查看远程库信息(新建的分支如果不推送到远程,对其他人是不可见的)
git push origin branch-name 从本地推送分支
git checkout -b banch-name oringin/branch-name 从本地拉取分支,取名一样(本地和远程分支名字一样,但是意义不一样)
git pull 从远处抓取分支,如果有冲突,先解决冲突。
相关文章推荐
- Git常用操作命令总结(二)
- Git原理及常用操作命令总结
- Git常用操作命令总结(一)
- Git常用操作命令总结
- 总结Git常用命令以及常用操作
- Git总结(1)—优势&安装&原理&本地操作命令&分支&协作&标签&自定义配置
- git常用操作命令总结
- Git的操作命令总结
- Git学习总结---命令操作
- 总结的git操作命令小抄集
- Git常用命令及常用操作总结
- Git入门——'查询命令'总结与文件的基本操作
- CentOS常用的文件操作命令总结
- GIT常用基础命令总结
- Git 常用命令总结
- Git 基础命令操作指引
- 【git】常见操作命令
- Redis操作命令总结
- 【git】idea /git bash命令 操作分支
- 40条最常用Git命令总结