您的位置:首页 > 其它

常用Git指令

2017-04-17 11:21 330 查看

1.目录和文件

显示当前目录路径:

pwd


创建/打开目录:

//创建目录
mkdir IOS
//打开目录
open IOS


移动文件:

//File为要移动的文件  TargetPath为要移动到的目录路径
mv File TargetPath


2.Git库

git配置:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
进入Git远程服务器

ssh git@git.gof.net


初始化远程git仓库:

sudo git init --bare sample.git


git仓库赋权:

sudo chown -R git:git sample.git


把目录变成git仓库:

git init


添加文件到仓库:

git add readme.txt


把修改提交到仓库。-m后面输入的是提交的说明,可以输入任意内容:

git commit -m "修改Key名称"


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
查看仓库当前的状态:

git status


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
查看文件修改的内容(一般用 git status指令查看到修改的文件,然后用git diff指令查看文件具体的修改内容):

git diff UIViewController+GofHookForGA.m


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px "Hiragino Sans GB" }
显示从最近到最远的提交日志:

git log


同上,不同的是仅显示日志摘要信息:

git log --pretty=oneline


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
回退到上一个版本:

//HEAD表示当前版本;上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard HEAD^


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
回退到指定commit id的版本:

//那串数字是commit id。
//版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了
git reset --hard 3628164


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
记录每一次命令:

git reflog


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
把readme.txt文件在工作区的修改全部撤销:

git checkout -- readme.txt


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
把暂存区的修改回退到工作区:

git reset HEAD readme.txt


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
直接删除文件:

rm test.txt


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
从版本库中删除文件,需要git commit:

git rm test.txt


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "Hiragino Sans GB"; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
span.s3 { font: 10.0px Helvetica }
本地库和远程库相关联,远程库名称为origin:

git remote add origin https://github.com/GofLee001/swiftdemo.git[/code] 
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
span.s3 { font: 10.0px "Hiragino Sans GB" }
把本地库master的所有内容推送到远程库:

//加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
把本地master分支的最新修改推送至GitHub:

git push origin master


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
克隆仓库到本地:

//1.要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
//2.Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
git clone git@github.com:GofLee001/swiftdemo.git


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
创建dev分支,然后切换到dev分支:

git checkout -b dev


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
创建dev分支:

git branch dev


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
切换到dev分支:

git checkout dev


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
列出所有分支,当前分支前面会标一个*号:

git branch


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
合并指定分支dev到当前分支:

git merge dev


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
删除dev分支:

git branch -d dev


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
查看分支的合并情况:

git log --graph


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

git stash


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
查看保存的工作现场:

git stash list


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
恢复工作现场并删除stash:

git stash pop

//上面指令等效于下面这两条指令
git stash apply   //恢复工作现场
git stash drop  //删除stash


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
强行删除没有合并过的分支dev:

git branch -D dev


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "Hiragino Sans GB"; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
查看远程库的信息:

git remote


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "Hiragino Sans GB"; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
查看远程库的详细信息:

git remote -v


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px "Hiragino Sans GB" }
推送自己的修改到远程:

git push origin branch-name


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "Hiragino Sans GB"; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
在本地创建和远程分支对应的分支:

git checkout -b branch-name origin/branch-name


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px "Hiragino Sans GB" }
建立本地分支和远程分支的关联:

git branch --set-upstream branch-name origin/branch-name


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "Hiragino Sans GB"; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
从远程拉取分支:

git pull


tag相关操作:

//查看所有标签
git tag

//打一个新标签
git tag v1.0

//给指定的commit打标签
git tag v0.9 6224937

//创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m "version 0.1 released" 3628164

//推送tag到远程
git push origin v1.0

//推送所有本地标签到远程
git push origin --tags

//删除本地标签
git tag -d v0.1

//删除远程的标签
git push origin :refs/tags/v0.1


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
让Git显示颜色:

git config --global color.ui true


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
更新 submodule:

git submodule update --remote


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
设置别名,这里status的别名是st:

git config --global alias.st status


删除submodule:

git submodule deinit 私有库名称
git rm 私有库名称
git rm --cached 私有库名称
rm -rf .git/modules/私有库名称


3.操作Podfile文件

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
创建Podfile文件:

touch Podfile


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #000000 }
span.s1 { font: 10.0px "PingFang TC" }
span.s2 { }
用Xcode打开Podfile文件:

open -a Xcode Podfile


4.提交podspec文件:

//1.提交到Github
pod lib lint GofShakeAndEmail.podspec  //pod验证  有时候需要加一下参数:--use-libraries --allow-warnings

pod trunk push GofShakeAndEmail.podspec //上传podspec文件到trunk服务器

//2.提交到私有服务器
pod repo push GofSpecs GofNetComponent.podspec


5.其他指令

5.1修改hosts文件

sudo vim /etc/hosts


删除指令:

x    删除光标下的字符 ("dl" 的缩写)
X    删除光标前的字符 ("dh" 的缩写)
D    从当前位置删除到行尾 ("d$" 的缩写)
dw    从当前位置删除到下一个单词开头
db    从当前位置删除到前一个单词的开头
diw    删除光标上的单词 (不包括空白字符)
daw    删除光标上的单词 (包括空白字符)
dG    删除到文件末
dgg    删除到文件首

"dl"    删除字符 (缩写: "x")            |dl|
"diw"    删除内含单词                *diw*
"daw"    删除一个单词                *daw*
"diW"    删除内含字串 (见 |WORD|)        *diW*

"daW"    删除一个字串 (见 |WORD|)        *daW*
"dd"    删除一行                |dd|
"dis"    删除内含句子                *dis*
"das"    删除一个句子                *das*
"dib"    删除内含 '(' ')' 块            *dib*
"dab"    删除一个 '(' ')' 块            *dab*
"dip"    删除内含段落                *dip*
"dap"    删除一个段落                *dap*
"diB"    删除内含 '{ ' ' }' 大块            *diB*
"daB"    删除一个 '{ ' ' }' 大块            *daB


5.2修改软件来源

sudo spctl --master-disable


5.3模拟器安装app

安装指令(参考):

xcrun simctl install booted App路径


如遇类似下面的错误提示:

No devices are booted。

执行指令(参考):

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer


安装包需要用Xcode直接运行生成,不能用Archive方式打包(这种的安装到模拟器之后会直接崩溃)。

5.4清除CocoaPods缓存

pod cache clean WCDB --all
rm -rf ~/Library/Caches/CocoaPods
pod repo update
pod intall


p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
span.s2 { font: 10.0px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px "PingFang TC"; color: #000000 }
span.s1 { }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: