IT评测·应用市场-qidao123.com
标题:
unity学习4:git和SVN的使用差异
[打印本页]
作者:
南飓风
时间:
2025-1-1 14:31
标题:
unity学习4:git和SVN的使用差异
目录
1 svn
1.1 操纵逻辑
1.2 对应工具
1.3 SVN制止辩论的好习惯
2 git
2.1 git的基础操纵逻辑
2.1.1 commit时,提交文件之外的其他文件必要pull
2.1.2 commit时,发现要提交的当地文件和服务器的文件辩论了
2.1.3 pull 时
2.2 对应工具
2.3 git的好习惯?
3 例子1:处置惩罚当地要提交的文件和服务器文件辩论
3.1 例子
3.2 错误方法:遇到辩论,直接丢弃的办法,不能彻底解决问题
3.3 怎样解决git 的合并辩论 (正确方法)
4 git命令的学习
4.1 初始化 Git 仓库 git init
4.2 检查当前状态git status
4.3 添加更改到暂存区 git add .
4.4 提交更改 git commit
4.5 查看提交历史 git log
4.6 推送到远程仓库 git push
4.6.1 添加远程仓库
4.6.2 git push
4.7 获取最新更改 git pull
4.8 合并辩论
4.9 查看当前分支:git branch
4.10 创建新分支:git checkout -b <新分支名>
4.11 切换分支:git checkout <分支名>
4.12 删除当地分支:git branch -d <分支名>
4.13 克隆远程仓库:git clone <远程仓库地址>
5 阅读报错和处置惩罚
1 svn
1.1 操纵逻辑
1 不要求项目内所有文件全部相同
2 只要求同1个文件,先取得最新版本后才华修改这个文件
3 为了防止辩论,SVN还可以对每个文件加lock,制止出现2个人同时修改1个文件辩论的环境。
1.2 对应工具
一样平常svn使用 tortoise
1.3 SVN制止辩论的好习惯
文件先在SVN里加锁lock功能,必要设置
先 更新要提交的文件
然后使用前先解锁
再进行 commit等操纵
2 git
2.1 git的基础操纵逻辑
2.1.1 commit时,提交文件之外的其他文件必要pull
针对1个分支,git要求整体更新,也就是进行操纵前,必须和服务器上的分支版本全部一模一样了才华进行后面的操纵
提交前,必须包管除了你要修改得这个文件比服务器上的新,其他文件得全部相同。也就是所有项目工程内的文件都必须和服务器一样新,不能比服务器上旧。
比如虽然之前已经pull了,但是在你操纵的这个间隙,有其他人提交了一个其他文件的修改,你的当地就比服务器有一个文件旧了。
否则就必要先把你这个要提交的新文件
先stash, 暂存到其他地方
然后pull,更新当地和服务器一样新
然后再 把stash的内容pop返来
再进行commit
再进行 push
(实用于文本文件,非二进制的文件)
1先将当地修改存储起来
$ git stash
如许当地的所有修改就都被临时存储起来 。
2 用git stash list可以看到保存的信息。
此中stash@{0}就是刚才保存的标记。
3暂存了当地修改之后,就可以pull了
$ git pull
4 还原暂存的内容
$ git stash pop stash@{0}
2.1.2 commit时,发现要提交的当地文件和服务器的文件辩论了
必要进行辩论解决
step1: 选择要留下那个版本
保存当地文件 git checkout --ours Data/configs.xlsx
选择保存远程文件:git checkout --theirs Data/configs.xlsx (一样平常选择这个)
step2 标记辩论已解决
确认你已经选择了正确的文件后,添加文件到暂存区:
git add Data/configs.xlsx
step3: 完成合并
提交解决后的更改:
git commit -m "Resolved merge conflict in Data/configs.xlsx"
step4: 同步代码
最后,将代码推送到远程仓库:git push
2.1.3 pull 时
如果你想进行拉取,git pull
服务器上有内容比你当地新
if 你当地什么修改也没有,OK
if 你当地有其他比服务器新的内容,就会报错, 怎么处置惩罚呢?
如果你当地有一些修改了,要么丢弃,要么先提交,总之得先包管和分支得服务器全部内容一模一样
那如果我不pull,直接commit是不是就行了?
也不行,这就是回到 2.1.1 会让你先stash ,再pull, 再提交
2.2 对应工具
一样平常git使用 sourcetree
git也可以使用 tortoise
还可以用 git bash
2.3 git的好习惯?
以下来自于百度AI
如果 Data/configs.xlsx 经常发生辩论,可以考虑以下方法:
制止多人编辑同一二进制文件。
使用文件锁定机制(比如 Git LFS 提供的锁定功能)。
将二进制文件存储在外部(如共享网盘或其他存储服务),而不是直接放在 Git 中。
3 例子1:处置惩罚当地要提交的文件和服务器文件辩论
3.1 例子
别人修改了A文件,已经上传
你也修改了A文件,预备上传。但是和服务器上的别人改的A文件内容不同。
服务器的文件和当地要提交的文件辩论了
3.2 错误方法:遇到辩论,直接丢弃的办法,不能彻底解决问题
比如,遇到辩论
git merge --abort
git reset --merge
git status
git status 可以查看现在的这个分支的的状态,是否有提交辩论等
前说有辩论,我把我当地放弃了,也能pull了。但是还是说有警告:由于辩论必要解决,不能删了了事,等你git pull的时间,还会报错
3.3 怎样解决git 的合并辩论 (正确方法)
你的问题是合并辩论,特殊是二进制文件 Data/configs.xlsx 出现辩论,Git 无法自动合并。
二进制文件(比如 Excel 文件)无法像文本文件一样进行合并,必要手动解决辩论。
以下是解决方法:
step1: 使用 git status 查看辩论的文件时哪些,git diff 看辩论的具体内容
检查辩论:运行 git status 查看哪些文件处于辩论状态。
查看辩论详情:使用 git diff 查看具体的辩论内容。
step2: 选择要留下那个版本
保存当地文件 git checkout --ours Data/configs.xlsx
选择保存远程文件:git checkout --theirs Data/configs.xlsx (一样平常选择这个)
step3 标记辩论已解决
标记辩论为已解决:对于每个已解决的辩论文件,运行 git add <文件名> 将其标记为已解决。
确认你已经选择了正确的文件后,添加文件到暂存区:
git add Data/configs.xlsx
step4: 完成合并
提交解决后的更改:
git commit -m "Resolved merge conflict in Data/configs.xlsx"
step5: 同步代码
最后,将代码推送到远程仓库:git push
伪代码流程:
git status # 查看辩论文件
git diff --name-only --diff-filter=U | xargs code & # 使用code编辑器打开所有未解决的辩论文件
# 手动解决辩论...
git add . # 添加所有解决后的文件
git commit # 提交更改
4 git命令的学习
4.1 初始化 Git 仓库 git init
如果你的项目尚未初始化为 Git 仓库,可以使用以下命令:
此命令将在当前目录创建一个新的 Git 仓库。
4.2 检查当前状态git status
在任何操纵前,建议检查当前工作区和暂存区的状态:
此命令会表现哪些文件已更改、哪些文件未被跟踪,以及哪些文件已预备提交。
4.3 添加更改到暂存区 git add .
添加单个文件: git add <文件名>
添加所有更改的文件:git add .
提示:git add . 会将当前目录及其子目录中所有更改过或新增的文件添加到暂存区。
4.4 提交更改 git commit
使用以下命令提交已暂存的更改到当地仓库:
git commit -m "<提交信息>"
-m: 提交时添加的简短描述。
提交信息应简洁明了,通常描述本次更改的内容
4.5 查看提交历史 git log
使用以下命令查看仓库的提交记录:git log
如果想简化表现,可以使用:git log --oneline
4.6 推送到远程仓库 git push
4.6.1 添加远程仓库
如果尚未设置远程仓库,可以使用以下命令:git remote add origin <远程仓库地址>
例如:git remote add origin https://github.com/username/repository.git
推送更改
4.6.2 git push
将当地提交推送到远程仓库:git push origin <分支名>
例如,推送到主分支:git push origin main
4.7 获取最新更改 git pull
在多人协作的环境下,先拉取远程仓库的最新更改:
git pull origin <分支名>
git pull实质上是git fetch和git merge FETCH_HEAD的组合,它会获取(fetch)远程仓库中所有分支的更新并与你的当地分支进行合并(merge)。
4.8 合并辩论
如果在拉取或合并代码时发生辩论,Git 会提示必要手动解决辩论。步骤如下:
编辑辩论文件,解决辩论标记(<<<<<<<, =======, >>>>>>>)。
将解决后的文件添加到暂存区:git add <辩论文件>
提交解决辩论后的代码:git commit -m "Resolve merge conflict"
4.9 查看当前分支:git branch
4.10 创建新分支:git checkout -b <新分支名>
4.11 切换分支:git checkout <分支名>
4.12 删除当地分支:git branch -d <分支名>
4.13 克隆远程仓库:git clone <远程仓库地址>
5 阅读报错和处置惩罚(待美满)
https://zhuanlan.zhihu.com/p/40452986
https://zhuanlan.zhihu.com/p/40452986
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4