git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
项目开发中起到的作用:代码管理,上传,下载,版本回退.....
一、git框架
二、git工作流程
三、提交时发生冲突如何解决?
原因
因为在合并分支的时候,master和dev分支恰好有人都修改了同一个文件,git不知道以哪一个文件为准,就产生了冲突。
解决
发生冲突时,对比本地文件和远程分支上的文件,然后把远程分支上的内容手工修改到本地文件,然后再提交冲突文件。必要时可以和同时沟通。
git stash //把工作区的修改提交到栈区,目的是保存工作区的修改 git pull //拉取远程分支上的代码并合并到本地分支,目的是消除冲突 git stash pop //把保存在栈区的修改部分合并到最新的工作空间中
四、Git和SVN的区别
Git SVN 1. Git是一个分布式的版本控制工具 1. SVN 是集中版本控制工具 2.它属于第3代版本控制工具 2.它属于第2代版本控制工具 3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器端存储库中 4.即使离线也可以提交 4.只允许在线提交 5.Push/pull 操作更快 5.Push/pull 操作较慢 6.工程可以用 commit 自动共享 6.没有任何东西自动共享
五、git功能分支操作
master //默认的主分支 git branch //查看本地分支 git branch 分支名称 //新建分支 git checkout 分支名称 //切换分支 git checkout -b 本地分支名 //切换分支 git checkout origin 远程分支名 //切换分支 git branch -r //查看远程仓库的分支 git push --set-upstream origin 分支名称 //本地分支提交到远程仓库 git branch -d 分支名称 //删除本地分支 git push origin --delete 分支名称 //删除远程仓库的分支
六、 合并分支方法
git merge 分支名称
如果当前是在master分支下写入:git merge dev,那么master和dev会进行合并,相当于master + dev。
七、在Git中,你如何还原已经 push 并公开的提交?
删除或修复新提交中的错误文件,并将其推送到远程存储库。
git commit -m "commit message"
创建一个新的提交,撤消在错误提交中所做的所有更改。
git revert <name of bad commit>
八、git pull 和 git fetch 有什么区别?
git pull命令从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。
git fetch也用于相同的目的,但它的工作方式略有不同。当你执行git fetch时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在git fetch之后执行git merge。只有在对目标分支和获取的分支进行合并后才会更新目标分支。
git pull = git fetch + git merge
九、其他常见命令
git diff index.js //查看某一个修改文件 git diff //查看所有修改文件 git log //查看修改历史 git reflog //查看修改历史【简单形式】 git reset --hard HEAD^ //回到上一个版本 git reset --hard 版本号 //回到指定版本
十、gitflow工作流
gitflow流程使用一个中央代码仓库,它是所有开发者的信息交流中心。跟其他的工作流程一样,开发者在本地完成开发,然后再将分支代码推送到中央仓库。唯一不同的是项目中分支的结构。
序号
名称
内容
1
master
用于保存上线版本代码,创建了dev分支
2
develop
用于保存相对稳定版本的代码,所有的feature都是dev分支创建的
3
feature
用于开发某几个功能,不同的功能可能会创建不同的分支
4
release
用于代码上线前的准备(测试,bug修复),是dev创建的
5
bugfix
用于修复不紧急bug
6
hotfix
用于修复紧急bug
源自大神的图