项目中一直用的sourcetree,但是大家都在用命令行,记录一下。
-
git status
// 查看状态 -
git diff (+ 文件)
// 查看某个文件修改内容 -
git add .
git add -A
// 将所有修改文件添加到暂存区中 -
git commit -m (描述)
告诉Git,把文件提交到仓库。 -
git pull
// 拉取最新代码 -
git log
// 查看修改记录 -
git log —pretty=oneline
// 查看简洁版日志 -
git reset --hard HEAD^
// 回退到上一个版本 git reset --hard HEAD~100
-
git checkout -- readme.txt
// 把readme.txt文件在工作区做的修改全部撤销 如果没有 -- 的话,那么命令变成创建分支了 - rm b.txt
-
git push
// 命令,实际上是把当前分支master推送到远程 -
git branch
// 查看分支,会列出所有的分支,当前分支前面会添加一个星号 -
git checkout
命令加上 –b参数表示创建并切换,相当于如下2条命令 -
git branch dev
// 创建分支 -
git checkout dev
// 检出分支 -
git merge
// 命令用于合并指定分支到当前分支上,
总结创建与合并分支命令如下:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
一次误操作,将代码弄丢了,赶紧回滚了一下。
git回滚到任意版本
git log -3
3是指查看条数
`commit be75b2ef7f242927ae977e853c861aa1613fe200 (HEAD -> master, origin/master, origin/HEAD)`
Author: v_liguangbin <2261983469@qq.com>
Date: Tue Feb 6 11:18:34 2018 +0800
金额字
`commit a7b7d0f6e8f828717e495bffcb89576b5bb4dc87`
Author: v_liguangbin <2261983469@qq.com>
Date: Tue Feb 6 11:08:17 2018 +0800
修改字体页 常用色 金额数字
`commit 16986f53d64da7eb503ef73d23cb7ddcc33f4004`
Merge: 5020ceb 9ec11a5
Author: v_zhudan <603131882@qq.com>
Date: Tue Feb 6 10:02:31 2018 +0800
回滚到指定的版本
git reset --hard 16986f53d64da7eb503ef73d23cb7ddcc33f4004
强制提交
git push -f origin master
当我以为完美结束的时候,突然发现回滚错了,肿么办~
- 选择.git/logs/refs/heads/文件夹所在文件夹选择你的分支,打开文件
c3b157a723e31cb34b5b9f88055a896e3fa7ca74 a9f5886f5d7be37a38e87c55bc8fa5ab36f96d5b v_zhudan <603131882@qq.com> 1517823475 +0800 commit: 蒙层颜色
a9f5886f5d7be37a38e87c55bc8fa5ab36f96d5b 9fa5ce821025ba8a2bc4ea8adff6221c9848177c v_zhudan <603131882@qq.com> 1517823487 +0800 pull --log origin master: Merge made by the 'recursive' strategy.
9fa5ce821025ba8a2bc4ea8adff6221c9848177c 3f5b51bb68b13f1e02b5fd465d19555c95cf9190 v_zhudan <603131882@qq.com> 1517825055 +0800 pull --log origin master: Fast-forward
3f5b51bb68b13f1e02b5fd465d19555c95cf9190 7665aa319a67ba4375dbc21242537d10146d1596 v_zhudan <603131882@qq.com> 1517825067 +0800 commit: no message
7665aa319a67ba4375dbc21242537d10146d1596 5020cebc9a7fee64454fd1c9c28f135c84af7bcf v_zhudan <603131882@qq.com> 1517882545 +0800 commit: 日期点击动画,地址选择器
5020cebc9a7fee64454fd1c9c28f135c84af7bcf 16986f53d64da7eb503ef73d23cb7ddcc33f4004 v_zhudan <603131882@qq.com> 1517882551 +0800 pull --log origin master: Merge made by the 'recursive' strategy.
16986f53d64da7eb503ef73d23cb7ddcc33f4004 be75b2ef7f242927ae977e853c861aa1613fe200 v_zhudan <603131882@qq.com> 1517897061 +0800 pull --log origin master: Fast-forward
- 找到相应的提交日志,输入
git reset --hard *
这里的*代表你想要恢复的log号. - 输入命令行后,show log即可看到之前reset hard丢失的分支已经恢复了。
- 请注意,log日志文件据说只会保留30天,如果想要恢复,请尽快恢复文件。
cocopods组件
项目创建验证
创建自己的项目
添加
pod repo add MMSpecs https://gitee.com/MuMuDa91/MMSpec.git
此时如果成功的话进入到~/.cocoapods/repos目录下就可以看到MMSpec这个目录了。至此第一步创建私有Spec Repo完成。
如果有其他合作人员共同使用这个私有Spec Repo的话在他有对应Git仓库的权限的前提下执行相同的命令添加这个Spec Repo即可
- 先创建自己的仓库
- 然后关联仓库,
- 拉去代码
- 以下创建
- 创建Pod项目工程文件
pod lib create MMVideo
What language do you want to use?? [ Swift / ObjC ]
> Swift
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Quick / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
根据自己的情况选择
- 接下来就是向Pod文件夹中添加库文件和资源,并配置podspec文件,我把一个网络模块的共有组件放入Pod/Classes中,然后进入Example文件夹执行pod update命令,再打开项目工程可以看到,
- 注:这里需要注意的是每当你向Pod中添加了新的文件或者以后更新了podspec的版本都需要重新执行一遍pod update命令。
最后找到解决办法如下:
1、先删除远程 Git 仓库$ git remote rm origin
2、再添加远程 Git 仓库$ git remote add origin git@github.com:FBing/java-code-generator
- 如果执行 git remote rm origin 报错的话,我们可以手动修改gitconfig文件的内容
删除MMVideo的.git
$ git add .
$ git commit -s -m "Initial Commit of Library"
$ git remote add origin git@coding.net:wtlucky/podTestLibrary.git
添加远端仓库
$ git push origin master
提交到远端仓库.因为podspec文件中获取Git版本控制的项目还需要tag号,所以我们要打上一个tag,
git tag -m "first release" "0.1.0"
$ git push --tags
推送tag到远端仓库
$ vi .git/config
把 [remote “origin”] 那一行删掉就好了。
echo 3.2 > .swift-version
pod lib lint --private
PodTestLibrary passed validation
.(通过)创建pods文件
pod spec create PodTestLibrary git@coding.net:wtlucky/podTestLibrary.git
文件一定要public
修改文件可以直接修改,添加文件必须pod update
项目推到共有库
1.git tag 1.0.0
给项目打tag
2.git push --tag --force
讲tag推到远程库
3.pod repo add ShanlinPublicSpecs(git库名称) http://120.27.220.201:3000/shanlin-iOS-public/ShanlinPublicSpecs.git(git库地址)
添加项目地址
4.pod repo push ShanlinPublicSpecs(git库名) SLTestKit.podspec(自己写的组件名称) --allow-warnings --verbose --sources='http://120.27.220.201:3000/shanLin-iOS-public/ShanlinPublicSpecs.git','https://github.com/CocoaPods/Specs.git'
推送到项目地址
* `--allow-warnings` 允许警告
* `--verbose` 显示详情
* `--sources` 添加源
- 其他人就可以直接使用