使用git高效管理项目

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 :xx

4.回退到某个提交

git checkout

git checkout hash值

git checkout V1.4.7恢复

查看一个具体的提交的commit hash值(已经提交git的也撤销远程的) 例如XXX

git 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 dev

8.删除分支 本地和远程 保持一致

git branch -D test && git push origin :test

保证本地和远程分支一致,防止远程分支都删除了但是还能checkout过去

git remote prune origin

9.仓库更换地址,设置新的url

git remote set-url origin git@git.oschina.net:hero/RTSPowerCI.git
git push --all

10.查看远程git地址

git remote show origin

11.git stash

git stash   //隐藏修改     这样可以起一个名字   git stash save "aaa" 
git stash list  //查看修改列表
git stash pop //恢复修改(也就是可以查看到更改)

12.撤销本地所有更改(自己做测试什么的,有了一些更改,甚至删除了一些文件)

git stash -u && git stash clear

13.查看远程分支列表

git branch -va

14.查看本地分支

git branch

15.强制添加一个在gitignore中忽略的文件

假如在.gitignore文件中被忽略了, 比如忽略Icon* ,这样就会忽略所有以icon开头的图片,git默认不区分大小写的。那么查看git状态是查看不到更改的,为了能添加到git中帮你托管,这样就会强制添加进来,帮你托管

git add -f  文件路径

16.rm和git rm的区别

用 git rm 来删除文件,同时还会将这个删除操作记录下来;
用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除。

17.当我们需要删除暂存区分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用

git rm --cached file_path

18.查看日志(某个人、所有人、某个hash)

查看具体人提交的日志
git log --author="jianan"  

查看所有人提交日志
git log

查看具体hash提交的东西
git log -p hash值

19.带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.

20.使用submodule管理项目

step1:
在任何一个目录下新建一个文件夹,比如:work,然后cd 切换到工作目录。(切换到的目录,以后再进行操作的话,就会在当前目录生效)

step2:
仓库初始化
git init

step3:
submodule初始化
git submodule init

step4:
将http地址上的库添加到submodule上
git submodule add (http地址)

21.查看远程所有分支列表

git branch -r

22.git pull --rebase 让提交成一条直线

解决冲突

解决冲突
 
git rebase --continue
 
git rebase --skip

徐源做法

git fetch upstream 
 
git rebase upstream/master

23.查看分支是谁创建的

git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' | sort -k5n -k2M -k3n -k4n

24.合并分支,将多个提交合并为一条

git merge --squash branchname

25.查看某个commit更改的文件名字(不查看更改内容 )

git diff-tree -r --no-commit-id --name-only HASH值

26.设置大小写敏感

git config --global core.ignorecase false

27.git revert 实现取消某次提交(可以是中间的一次提交)

git revert -n XXX
git commit -m "cancel LF CRLF"
git push 

revert应用场景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^

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值