1、svn相关
Mac系统自带svn命令
(目前只是用到一些简单的更新文档的操作)
- checkout 下载项目/文件夹
svn checkout http://192.168.1.120/Project1 --username=xxx --password=123 /Users/username/Desktop/Project1
- add 添加
svn add test.txt
添加单个文件test.txt
svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add
一次性添加所有文件和修改的文件 - commit 提交
svn commit -m "message"
- delete 删除
svn delete test.txt
或者直接在finder中把要删除的文件拖入delete后面
注:在finder中直接删除文件,之后svn commit是无效的 - update 更新
svn update
更新所有文件
svn update test.txt
更新指定文件
2、git相关
clone 克隆工程
git clone <仓库地址> <本地路径>
电脑重启,无法连接gitlab,需要重新添加rsa
cd .ssh
ssh-add id_rsa
查看当前本地分支有哪些
git branch
checkout 检出
git checkout 分支名
检出分支/切换本地分支
git checkout -b 新分支名 master
在master上新建分支
git status
查看当前状态,处于哪个分支上?有没有待提交代码?add 添加
git add .
将改动的文件添加到暂存区commit 提交
git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里。
git commit -m "message"
pull 拉取最新代码
git pull <远程主机> <远程分支>:<本地分支>
git pull origin master:my_feature
origin是远程厂库地址,将origin厂库的master分支拉取并合并到本地的my_test分支上。如果省略本地分支,则自动合并到当前分支,所以要确认清楚当前分支。
git pull 是 git fetch和git merge的结合git fetch //更新所有分支 git fetch origin master:tmp //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支 git diff tmp //来比较本地代码与刚刚从远程下载下来的代码的区别 git merge tmp //合并temp分支到本地的master分支(当前分支) git branch -d temp //如果不想保留temp分支 可以用这步删除
push 推送
git push <远程主机名> <本地分支名>:<远程分支名>
git push origin my_feature
命令中的本地分支是指将要被推送到远端的分支,而远程分支是指推送的目标分支,即将本地分支合并到远程分支。
如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
git push origin --delete <branchName>
删除远程分支stash 暂存
git stash save "name"
暂存当前未提交的代码(包括所有已暂存、未暂存文件),命名为name,这时工程代码就会回到上一次提交时的样子,这时候再查看一次git status就可以看到working tree is clean,可以进行分支切换等操作
git stash list
查看暂存列表
git stash apply
应用本地暂存,有多个暂存时先查看暂存列表,然后用git stash apply stash@{2}应用具体某个暂存代码回退
git log -3
数字可无,查看当前分支提交历史记录
根据git log的结果,当提交的代码还没push到远程分支,需要回退时用reset:
git reset HEAD~1
将版本库回退1个版本,将本地版本库的头指针全部重置到指定版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段(还有另外–soft和–hard参数,需要用到再查吧~)
git reset
重置已暂存文件,全部移回“未暂存文件”区域
git checkout .
把当前未暂存区域的所有改动全部丢弃掉很好用,如果觉得留着可能之后有用就执行git stash save “name”进行暂存
*当提交的代码已经push到了远程分支,需要回滚时用revert,线上线下代码保持一致:
git revert 版本唯一的commit标识代码
revert用于反转提交,执行revert命令时要求working tree is clean,revert之后本地代码会回滚到指定的历史版本,再git push 就可以把线上的代码更新tag 操作
git tag #
在控制台打印出当前仓库的所有标签
git tag
查看当前分支下的tag
git tag -d test_tag
本地删除tag
git push origin --delete tag <tagname>
删除tag【报错】Xcode点右上角author图标:Couldn’t communicate with a helper application
指的是:不能与助手应用程序通信在Xcode中(helper ->指的是git)
终端输入:
Xcrun git config --global user.email 你的邮箱
xcrun git config --global user.name gitlab上的你的名字