Fork软件安装(更快的SourceTree)
软件1、
Fork - a fast and friendly git client for Mac and Windows
记得设置pull时rebase,这样子保证是一个直线
fork查看指定人的提交 // 比如:某人写了技能的代码,想开发这一块,那就看它的提交
软件2、腾讯UGIT // 毕竟游戏开发出身做的东西,值得一看!!!
UGit - 让每个人都可以轻松使用Git
可以对比Excel差异
使用rebase代替merge
软件3、sourcetree(自己项目参考用)
Sourcetreeapp
打开 SourceTree,在顶部菜单栏点击工具(Tools)>选项(Options)-->在弹出的窗口中,找到一般(General)选项卡--》修改SSH客户端为OpenSSH
使用resbase代替merge设置
一、gitee删除失效的仓库
删除仓库(注意修改2处): https://gitee.com/jianan/仓库名/settings#remove@仓库名 例子: https://gitee.com/jianan/zfoo/settings#remove@zfoo二、多仓库组织模式
方式1:
多个仓库以submodule的方式组织起来,这样分离不同人的权利看到不同的仓库。
方式2:
主仓库忽略子仓库的模式,主仓库是公用的代码,子仓库是一个个会变化的模块。
三、Mac终端配置
iterm2
iTerm2 - macOS Terminal Replacement
oh my zsh
Oh My Zsh - a delightful & open source framework for Zsh
Homebrew
macOS(或 Linux)缺失的软件包的管理器 — Homebrew
四、mac下搜索神器: the_silver_searcher安装
brew install the_silver_searcher cd /Users/jianan/Documents/work/naval_res ag -i 搜索内容五、控件命名规则
btn_ => Button lbl_ => BitmapFontLabel lbl_ => Text img_ => Image spr_ => Sprite node_ => Node pnl_ => Panel var_ => 其他类型 chk_ => CheckBox pag_ => PageView lod_ => LoadingBar sld_ => Slider inp_ => TextField par_ => Particle til_ => Map adi_ => Audio scr_ => ScrollView六、adb用法小结
➜ ~ /Users/jianan/Documents/Android/sdk/platform-tools ➜ platform-tools ./adb logcat | grep cocos platform-tools ./adb install /Users/jianan/Desktop/naval-release-signed\七、git常用操作
1.分支合并(只合代码库和加密库.例如:合并V1.2.3Oversea到master上)
注意:这个git merge master指的是把本地的master代码合并到当前分支,所以: 必须先切换master拉取下才行。
cd naval(V1.2.3Oversea) git pull cd naval(master) git merge V1.2.3Oversea 解决冲突 cd naval_encrypt(V1.2.3Oversea) git pull cd naval_encrypt(master) git merge V1.2.3Oversea 解决冲突 资源的合并技巧:当你确定要用V1.2.3Oversea上的东西,比如资源时,可直接将其覆盖到master上,然后提交更改即可。比较: merge 和 rebase(变基,从分叉处把自己的提交取消掉,然后重新产生新的commit到后边)
2.命令合并部分修改(例如:将V1.2.3Oversea上别人某个提交合并到master上)
cherry-pick
cd naval(V1.2.3Oversea) git pull 查看提交的commit hash值,例如是XXX cd naval(master) git cherry-pick hash值 解决冲突3.删除分支
git branch -D xx && git push origin :xx4.回退到某个提交
git checkout
git checkout hash值 git checkout V1.4.7恢复 查看一个具体的提交的commit hash值(已经提交git的也撤销远程的) 例如XXXgit reset (注意后面那个origin dev需要指定下远程分支):
git reset --hard 0cde337c48fe626cd25d4e2c0ff5f67786f2d978 && git push -f origin dev错误:经过验证:用这个错误的,看着是回退了,但是执行git pull又拉取下来了。尴尬!!!
git reset --hard <commit_id> && git push origin HEAD --force (这个是错误的,一拉取会回来)
撤销merge还可以用
git merge --abort我发现别人还git checkout 到commit hash值,然后又这样打入分支名称来恢复
妙用sourcetree切换分支时恢复(从汪强那学到的)
使用source tree切换分支时,提示我保存,我选择不保存则恢复了(从汪强这学到的)5.撤销commit(git add .后撤销某个commit)
git reset .6.拉取别人创建的分支
git fetch
git checkout -b oversea_V1.1.1 orign/oversea_V1.1.1 这个可以让本地看到V1.4.5分支
这样更靠谱,直接指定远程分支和本地分支名字:
git fetch origin xx:xx
7.创建分支并推送到远程
git checkout -b dev && git push origin dev && git branch --set-upstream-to=origin/dev dev8.删除分支 本地和远程 保持一致
git branch -D test && git push origin :test保证本地和远程分支一致,防止远程分支都删除了但是还能checkout过去
git remote prune origin9.仓库更换地址,设置新的url
git remote set-url origin git@git.oschina.net:hero/RTSPowerCI.git git push --all10.查看远程git地址
git remote show origin11.git stash
git stash //隐藏修改 这样可以起一个名字 git stash save "aaa" git stash list //查看修改列表 git stash pop //恢复修改(也就是可以查看到更改)12.撤销本地所有更改(自己做测试什么的,有了一些更改,甚至删除了一些文件)
git stash -u && git stash clear13.查看远程分支列表
推荐: 1)查看远程分支 git ls-remote 2)查看本地分支 git branch 3)具体查看某个人的分支: $ git ls-remote | grep jiajun From http://xxx.gitfa81104b407a14c0713684b255e3d581c8dc54a6 refs/heads/jiajun_building14.查看本地分支
git branch15.强制添加一个在gitignore中忽略的文件
假如在.gitignore文件中被忽略了, 比如忽略Icon* ,这样就会忽略所有以icon开头的图片,git默认不区分大小写的。那么查看git状态是查看不到更改的,为了能添加到git中帮你托管,这样就会强制添加进来,帮你托管
git add -f 文件路径16.rm和git rm的区别
用 git rm 来删除文件,同时还会将这个删除操作记录下来; 用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除。17.当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用
git rm --cached file_path18.查看日志(某个人、所有人、某个hash)
查看具体人提交的日志 git log --author="jianan" 查看所有人提交日志 git log 查看具体hash提交的东西 git log -p hash值19.submodule
git bash下的最佳实战
#################git################ #有颜色 alias ls='ls -F --color=auto --show-control-chars' #有颜色 alias ll='ls -l' #所有模块批量拉取 alias gl="git pull --rebase && git submodule foreach git pull --rebase" #批量查所有模块的git状态是否干净 alias gst="git status && git submodule foreach --recursive git status" #批量查看当前模块都处于哪些分支 alias gb="git branch && git submodule foreach --recursive git branch" # 主分支和子模块一块切分支 gc() { git checkout "$1" && git submodule foreach --recursive "git checkout \"$1\"" } # 主分支和子模块都新建分支并推送到远程 gcp() { git checkout -b "$1" && \ git submodule foreach --recursive "git checkout -b \"$1\"" && \ git push -u origin "$1" 2>&1 | grep -E "(new branch|set up to track)" && \ git submodule foreach --recursive "git push -u origin \"$1\" 2>&1 | grep -E '(new branch|set up to track)'" } #还原 alias ra='git clean -df && git submodule foreach --recursive git clean -df'带submodule的拉取
➜ work git:(master) ✗ git submodule update --init ➜ work git:(master) ✗ cd naval ➜ naval git:(master) ✗ git submodule update --init Submodule 'frameworks/cocos2d-x' (git@git.oschina.net:young40/cocos2d-x.git) registered for path 'frameworks/cocos2d-x' Cloning into 'frameworks/cocos2d-x'... remote: Counting objects: 11975, done. remote: Compressing objects: 100% (7566/7566), done.使用submodule管理项目
step1: 在任何一个目录下新建一个文件夹,比如:work,然后cd 切换到工作目录。(切换到的目录,以后再进行操作的话,就会在当前目录生效) step2: 仓库初始化 git init step3: submodule初始化 git submodule init step4: 将http地址上的库添加到submodule上 git submodule add (http地址)21.查看远程所有分支列表
git branch -r22.git pull --rebase 让提交成一条直线
解决冲突
解决冲突 git rebase --continue git rebase --skip徐源做法
git fetch upstream git rebase upstream/master23.查看分支是谁创建的
git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' | sort -k5n -k2M -k3n -k4n24.合并分支,将多个提交合并为一条
git merge --squash branchname25.查看某个commit更改的文件名字(不查看更改内容 )
git diff-tree -r --no-commit-id --name-only HASH值26.设置大小写敏感
git config --global core.ignorecase false27.git revert 实现取消某次提交(可以是中间的一次提交)
git revert -n XXX git commit -m "cancel LF CRLF" git pushrevert应用场景1:
A B C D E F G这几次提交,假如你发现自己C D等中间几个版本提交了错误的代码,但是后面又有别人的提交,那么用revert就可以取消某中间的几次提交,如上,则是取消XXX这次提交,生成一次新的提交
revert应用场景2:
有的不让用-f选项,但是你又想回退这个版本,因此没办法用git reset --hard 和 git push -f来回退,这时用revert取消这些提交也是一种办法
28.撤销git push(但是我不想push了)
git reset --hard HEAD^29.commit消息错误了,想修改下重新提交
git commit --amend30.README
## 服务提供者启动  ## send消息  ## rpc同步调用   ## rpc异步调用 31.忽略指定文件后续更改
git update-index --skip-worktree EmmyLuaDebug.lua