抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Git 使用记录

记录一下平时使用Git的记录

为什么使用Git

程序开发的第一步,就是做版本管理。频繁提交,可以便于环境恢复和Bug查找。分支开发,也能便于合作与多设备协同。配置Review规范,你还可以知道你的合作者在干什么,有效避免了因为开发者习惯能力差异导致的项目丑陋。配合CI的编译预检查,还能提高代码的稳健性。总之版本管理十分重要。

版本管理工具有很多,游戏开发由于拥有大量会频繁改动的二进制资源,于是常常使用SVN等工具,比如P4V。而引擎开发一般以代码为主,用Git管理,其中二进制文件(比如第三方库的超大号DLL)使用Git LFS管理

Cherry pick

常用于获取他人其他分支的某些改动,相较于Rebase,对于本地代码的破坏性更小,会保留commit信息

Cherry pick,摘樱桃,功能是将某个commit复制到当前分支

# Cherry pick 哈希值为8e8b...的commit
git cherry-pick 8e8bd4a89063535cb91de56a57e3a1683927a3b1
# Cherry pick 哈希值从8e8b...到e652...的一系列连续的commit
git cherry-pick e65275b5b2b71153ff08e865cd825e27b5d247b5^..8e8bd4a89063535cb91de56a57e3a1683927a3b1

设置别名

有时很多很常用的命令你感觉太长了,于是可以使用别名

# 设置commit别名c,git c将等同于git commit
git config --global alias.c commit
# 设置status别名s
git config --global alias.s status

补丁

常用于获取他人其他分支的某些改动,但并不会保存commit信息,你需要手动add、commit

diff

差异,用于生成补丁文件(patch),补丁文件本身是个纯文本文件

# 比较branch1和2的最新提交间的差异,将差异保存在mypatch.patch文件中
git diff branch1 branch2 > mypatch.patch

apply

应用,用于应用补丁文件(patch),若出现冲突,会生成拒绝(reject)文件,你可以手动处理掉这些reject文件

git apply xxx.ptach --reject

清理

手动进行垃圾回收,以释放本地存储空间

git prune

网络443

有的时候我们挂了梯子仍然连不上github服务器,报错

fatal: unable to access ‘https://github.com/Reuben-Sun/ToolEngine.git/’: Failed to connect to github.com port 443 after 21070 ms: Couldn’t connect to server

此时我们可以先查看自己梯子的端口号,然后找到.gitconfig文件,添加代理设置(我这里以端口号为7890为例)

[user]
email = xxx@xxx.com
name = xxx
[http]
proxy = http://127.0.0.1:7890
[https]
proxy = http://127.0.0.1:7890

评论