2016年4月
pushd和popd的用法
pushd <path> # 把当前目录压入堆栈,并切换至path
popd # 切换至栈底目录。
至此 linux/win 用法一致,linux多了个 dirs
命令,可以查看当前目录堆栈情况。
git命令使用记录
显示出所有分支以及分支sha
git branch -v
显示出当前文件夹修改状态
git status -- .
批量提交已修改,已删除,新增,等状态文件
git commit -a
新建分支
git branch newb
切换分支
git checkout newb # 这条命令同同时也是吧修改还原
git checkout file # 根据 rep 恢复暂存区与工作区的修改
git checkout -b newb # 新建分支并切换至
初始化git仓库
git init
git init --bare # 不带工作区
记录所有修改到暂存
git add -u
git add -u -- . # 指当前目录下所有修改(包括删除)
git add -A stages All
git add . stages new and modified, without deleted
git add -u stages modified and deleted, without new
把当前工作区的所有修改打包起来,并恢复工作区到最近的commit状态 (注意,未版本控制的文件是不会被打包的)
git stash
git stash -u # 包括未版本控制的文件
git stash pop
删除 untracked files
git clean -f
连 untracked 的目录也一起删掉
git clean -fd
连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd
一些问题
warning: LF will be replaced by CRLF in 的解决办法
git config --global core.autocrlf false # 一般在win下使用。
git config --global core.autocrlf true # win使用
git config --global core.autocrlf input # linux/mac使用
true 表示出库转换为 `crlf` 入库为 `lf` ,`input` 表示出库默认,入库为 `lf`。这样保证仓库始终是 `lf` 状态。
autocrlf = true 表示要求git在提交时将crlf转换为lf,而在检出时将crlf转换为lf。
autocrlf = false 表示提交和检出代码时均不进行转换
autocrlf = input 表示在提交时将crlf转换为lf,而检出时不转换
中文路径问题
在中文情况下 git status是 “344272247345223201351234200346261202” 差不多这样的。
解决这个问题方法是:
git config --global core.quotepath false
在linux/win上创建符号链接
平时是在 mac 和 win 下开发游戏的,然而编译出来的游戏与游戏资源是不在一起的,每次要运行游戏都得把资源拷贝到游戏包中再执行,有时候常常忘记拷贝出现莫名其妙的问题。最近看微博的时候发现有符号链接这东西,看起来很不错,可以把一个文件和另一个文件建立链接关系,访问A等价访问B,于是就试着把游戏资源直接链接到游戏包中,发现是可行的。
win
cd game/runtime/win32/ # 游戏包输出目录
mklink /d res ../../res # 建立符号链接,访问res等价访问game目录下的res
mklink /d src ../../src
mklink 命令中的 /d 是创建符号链接
/j 是创建符号联接
两者之间一字之差,尚未搞清楚它们的关系如何。/h 是创建硬链接
会增加原来文件的引用计数,只有引用计数为0才会被删除真实文件。
mac/linux
cd game/runtime/mac
ln -s ../../res res
ln -s ../../src src
python开启简易http文件浏览
python2 -m SimpleHTTPServer
python3 -m http.server