gitgit工作原理clone是“从无到有”地完整复制一个远程仓库而fetch是“从有到更新”地同步远程仓库的最新变更pullfetchmerge创建本地代码仓库和远程代码仓库云校先有远程仓库直接使用克隆存储库拉取别人的代码步骤输入ssh创建一个空文件夹作为本地代码仓库先创建本地仓库上传到云端自己代码上传1.云校上新建代码库2.复制SSH密钥3.创建本地存储库4.创建本地代码仓库5.点击创建并推送。Git更改视图visual studio中按钮和指令对应1.提取fetch2.拉取pull3.推送push4.同步拉取并推送visual studio按钮将工作目录代码推送到远程1.先将暂存到暂存区add需要推送的才添加到缓存区新添加的文件未暂存就是未跟踪。2.输入提交的记录3.提交到本地仓库commit4.推到远程仓库push提交记录云校上提交可以查看远程仓库的提交记录本地仓库查看提交分支使用分支来进行不同版本的工程管理当本地仓库中创建了一个分支推送后远程仓库也会新建立一个分支。当选择不同的分支对应的解决方案资源管理器中代码也会改变合并分支冲突Git 冲突通常发生在以下两种情况同一文件的同一区域被不同分支修改当两个分支对同一个文件的相同行或相邻行进行了不同的修改时Git 无法自动合并就会标记为冲突。一个分支删除了某段代码而另一个分支修改了它例如分支 A 删除了某几行代码而分支 B 修改了这几行代码Git 无法判断是应该保留修改还是执行删除也会产生冲突。Git 的“三方合并”机制当你在分支 A 执行合并分支 B 时Git 并不是简单地拿 A 和 B 来比对而是同时找出这三个版本共同祖先你们两个分支在分道扬镳之前最后一次共同的那个提交。当前分支你所在的分支 A 的最新代码。目标分支你要合并进来的分支 B 的最新代码。Git 会将这三个版本放在一起进行三方比对1. 打印(Hello) 2. 打印(World)场景一分支 A 删除分支 B 修改分支 A 现在的代码1. 打印(Hello)第2行没了分支 B 现在的代码1. 打印(Hello)2. 打印(Git)第2行改了Git 会分别拿 A 和 B 去跟Base祖先对比Git 看分支 A“A 把第2行删掉了这是 A 相对于祖先的动作。”Git 看分支 B“B 把第2行改成了 Git这是 B 相对于祖先的动作。”结论A 的动作是“删除”B 的动作是“修改”。这两个动作作用在了同一个目标第2行上产生了意图冲突Git 无法判断你是想保留修改还是执行删除于是爆发冲突。