Git
Git是一个分布式的版本控制工具,SVN 是集中版本控制工具
git commit 和 git push的区别
git作为支持分布式版本管理的工具,它管理的库(repository)分为本地库、远程库。
git commit操作的是本地库,git push操作的是远程库。
git commit是将本地修改过的文件提交到本地库中。
git push是将本地库中的最新信息发送给远程库。
git指令
4.3.1 状态查看
git status
查看工作区、暂存区状态
4.3.2 添加
git add [file name]
将工作区的“新建/修改”添加到暂存区
4.3.3 提交
git commit -m “提交信息” [file name]
将暂存区的内容提交到本地库
4.3.4 查看历史记录
git log
4.4.2 分支的好处?
Ø 同时并行推进多个功能开发,提高开发效率
Ø 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任
何影响。失败的分支删除重新开始即可。
4.4.3 分支操作
Ø 创建分支
git branch [分支名]
Ø 查看分支
git branch -v
Ø 切换分支
git checkout [分支名]
Ø 合并分支
n 第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并分支名]
n 第二步:执行 merge 命令
git merge [有新内容分支名]
Git branch -D 分`支名 可以删除本地分支
git命令
命令 | 说明 |
---|---|
git init | 初始化git仓库 |
git add . | 把工作区所有的修改都提交到暂存区 |
git add 指定文件名 | 把工作区指定的文件添加到暂存区 |
git status | 查看工作区和暂存区的状态 红色工作区发生变化 绿色暂存区发生变化 |
git commit -m “描述” | 把修改从暂存区提交到本地版本库的当前分支 |
git commit -a -m “提交信息” | 跳过暂存区 已经跟踪过的文件暂存起来一并提交 |
git log | 查看历史记录 |
git reflog | 查看所有的历史记录 |
git log --graph | 打印图谱 |
git diff | 查看工作区的具体修改 |
git diff --cached | 查看暂存区具体的修改 |
git checkout – 文件名 | 撤销工作区的修改 |
git clone 仓库地址 | 克隆仓库 |
ssh-keygen | 生成公钥和秘钥 |
git push origin master | 向远程master分支推送代码 |
git pull origin master | 从远程master分支拉取代码 |
git fetch origin master | 从远程master分支拉取代码,但是不和本地的合并 |
git branch dev(分支名) | 新建分支 |
git branch | 查看本地所有的分支 |
git branch -a | 查看本地和远程所有的分支 |
git branch -r | 查看远程的分支 |
git checkout dev(分支名) | 切换分支 |
git checkout -b 分支名 | 创建并切换分支 |
git merge origin/master | 合并代码 |
git branch -d 分支名 | 删除本地分支 |
git push origin --delete 分支名 | 删除远程分支 |
git tag v1.0 | 打标签 |
git tag -d v1.0 | 删除标签 |
1.使用git branch命令可以查看到,当前目录下只有一个master分支
2.使用git branch 分支名称创建分支,创建完成后通过git branch可以看到本地已经多出了
一个新建的分支git branch test git branch 有两个分支
3.使用git push origin 分支名 命令将本地的修改推送到远程服务器上
git push origin test
放弃单个文件修改,注意不要忘记中间的"–",不写就成了检出分支了!
git checkout – filepathname
放弃所有的文件修改
git checkout .
git checkout命令用于切换分支
提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的?
开发过程中,我们都有自己的特性分支,所以冲突发生的并不多,但也碰到过。诸如公共类的公共方法,我和别人同时修改同一个文件,他提交后我再提交就会报冲突的错误。
发生冲突,在IDE里面一般都是对比本地文件和远程分支的文件,然后把远程分支上文件的内容手工修改到本地文件,然后再提交冲突的文件使其保证与远程分支的文件一致,这样才会消除冲突,然后再提交自己修改的部分。特别要注意下,修改本地冲突文件使其与远程仓库的文件保持一致后,需要提交后才能消除冲突,否则无法继续提交。必要时可与同事交流,消除冲突。
发生冲突,也可以使用命令。
通过git stash命令,把工作区的修改提交到栈区,目的是保存工作区的修改;
通过git pull命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突;
通过git stash pop命令,把保存在栈区的修改部分合并到最新的工作空间中;
git pull 和git fetch
可以简单的概括为:
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git pull 和git fetch
可以简单的概括为:
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull
则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge
,这样可能会产生冲突,需要手动解决。