iOS git的使用,开发过程中问题记录

1.使用“git”代码管理工具,导入项目

注:在本地已创建了一个新项目,三方管理工具已配置好信息,需要将本地项目工程传到三方管理工具上,使用"git"分布式来管理,传到分支上

  • cd 工程文件项目
  • git init
    //创建本地仓库 这时出现 Initialized empty Git repository in ... 创建空的本地仓库
  • touch README.md
    //创建帮助文件
  • git add README
    //(添加readme文件到本地仓库)
  • git add .
    //将项目的所有文件添加到缓存中。git add . (注意,后面有个点)表示添加目录下所有文件到缓存库,如果只添加某个文件,只需把 . 换成你要添加的文件名即可;
  • git commit -m "注释内容"
    //将缓存中的文件Commit到git库
  • git remote add origin "上面复制的路径"
    //将本地的库连接到远程仓库中,输入: git remote add origin HTTPS链接
    //(你的远程仓库地址,即是码云的项目地址)//和远程仓库进行关联
  • git pull origin master
    //先执行从远程库拉取项目
  • git push -u origin master. //git push origin master

//上传本地项目到了三方代码管理库


以下是另外一种上传方式

  • git push origin master 或 git push -u origin master//上传仓库到码云
    (如果你是在分支操作,就将这个master变为你的分支名称)

注:若push失败,则需先从码云上将你建的空项目拉取到本地,先执行git pull origin master,再执行git push -u origin master 若任然push失败,则使用此命令 git push --force origin master


一些其他命令

  • git clone url(项目仓库地址) //克隆一个远程仓库,就是在本地建立一个新的项目。

  • git pull origin master //如果已经有一个项目,通过这条指令可以直接更新该项目

  • git status
    //查看当前状态

  • git add -A
    //将所有代码添加到缓存中

  • git commit -a -m "填写修改的内容"
    //commit 到仓库中

  • git push -u origin master
    //提交到远程仓库中


分支管理

  • git branch newbranch
    //新建分支
  • git branch -a
    //查看远程分支

输出

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dadiaoge
  remotes/origin/master
*代表当前所在的分支
  • git branch
    //查看本地分支

输出

* master
  newbranch
  • git checkout new branch
    //切换分支

输出

Switched to branch 'newbranch'

切换后可用git branch -a查看是否切换到当前分支

输出

master
* newbranch
  • git add .
    git commit -a
    //提交改动到当前分支

可使用git status查看提交状态
接着切回主分支

  • git checkout master

输出

Switched to branch 'master'

将新分支提交的改动合并到主分支上

  • git merge newbranch

如果合并后产生冲突,可输入以下指令查看冲突:

  • git diff

修改之后,再次提交即可;
接下来,就可以push代码了:

  • git push -u origin master

这时可能需要你输入你的github用户名和密码,按照提示输入即可;

删除分支
  • git branch -D newbranch

输出

Deleted branch newbranch (was 93a1347).

回退版本

  1. 查看历史版本

git log

  1. 回退到之前版本,并且代码也回滚到之前的代码

git reset --hard commit_ID
//这个commit_id就是通过git log查看到的commit_ID

  1. 回退到之前的commit缓存区,但是代码不会变化,这时可以选择性进行commit

git reset --soft commit_ID

合并其他分支的一个commit至本地分支

  1. 先找到要合并分支的commit的commit_ID,可以使用git log查看,可以通过xcode或者sourcetree都可以查看
  2. 关键命令git cherry-pick
  3. 具体步骤
1. cd 你的项目
2. git cherry-pick commit_ID
这里需要将commit_ID替换成你想合并的commit
  1. 示例
git cherry-pick 0209edac

删除项目与远程仓库的连接

  1. 删除当前项目的远程仓库连接

git remote rm origin

2.重新添加一个新的远程仓库连接

git remote add origin 远程仓库地址

查看mac电脑的隐藏文件

当我们使用git开发过程中,有天突然创建了一个新的pods工程,但是这个新的工程并不会和我们的远程仓库关联上,这个时候就需要改改

  1. 打开或者关闭文件的隐藏东西。快捷键

⌘ ⇧ .

command + shift +  . 
  1. 删除.git.gitignore

ssh 克隆 代码

ssh克隆代码比http克隆代码强一万倍,fuck,能用ssh,就不用http,会出现一万种问题,最常见的就是缓冲区不够,说的开辟更大的,先讲下http克隆代码

  1. 使用命令git config --global http.postBuffer 524288000 和 git config --global https.postBuffer 524288000,这个是500M。由于我们公司仓库很大,1.6个G,于是我开辟了2个G的空间,发现还是不行,后面不管我开启多大的,都不行。
  2. 第二种方案,只克隆最近一次提交的,就是克隆下来的只有最近的一次commit,使用命令
    git clone --depth=1 https:xxx.git,https:xxx.git 就是你的仓库地址,结果发现的确克隆下来了,但是克隆下来的只有master,没有其他分支,也是个坑。
  3. 接着第二种方案,如果说只要一个分支,还是可以将就使用,还需要使用一个命令,将其他commit 和 tag 再拉下来,使用命令
    git fetch --unshallow,最后再使用命令git pull --all
  • 接下来还是讲ssh。首先创建ssh文件,一般系统默认的都不行,必须重新创建
    ssh-keygen -t rsa -C "youremail@example.com"
    youremail@example.com换成自己的邮箱账号。创建好后,会在.ssh目录下生成id_rsa、id_rsa.pub两个文件私钥和公钥

  • 通过cat ~/.ssh/id_rsa.pub查看公钥,并将公钥整体复制,配置到GitHub等后台。

  • 从头到尾都复制,放到key中


    ssh.png
配置本地SSH

当我们使用sourcetree的时候,需要将ssh配置上去,

  1. 使用命令ssh-add ~/.ssh/id_rsa,添加到sourcetree里面
  2. 执行ssh-add -K ~/.ssh/id_rsa将sshkey添加到钥匙串
  3. cd 到 .ssh目录下, 用touch config命令创建config文件
  4. 执行open config, 打开config文件,输入以下内容并保存
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa

这个时候,你使用sourcetree,才能够克隆ssh方法的代码

公司网络访问github受限制

  1. 编辑hosts,文件路径 /etc/hosts
  2. 添加ip地址
# GitHub520 Host Start
140.82.112.25                 alive.github.com
140.82.112.5                  api.github.com
185.199.110.153               assets-cdn.github.com
185.199.111.133               avatars.githubusercontent.com
185.199.111.133               avatars0.githubusercontent.com
185.199.111.133               avatars1.githubusercontent.com
185.199.111.133               avatars2.githubusercontent.com
185.199.111.133               avatars3.githubusercontent.com
185.199.111.133               avatars4.githubusercontent.com
185.199.111.133               avatars5.githubusercontent.com
185.199.111.133               camo.githubusercontent.com
140.82.114.22                 central.github.com
185.199.111.133               cloud.githubusercontent.com
140.82.112.10                 codeload.github.com
140.82.112.22                 collector.github.com
185.199.111.133               desktop.githubusercontent.com
185.199.111.133               favicons.githubusercontent.com
140.82.112.4                  gist.github.com
52.217.34.20                  github-cloud.s3.amazonaws.com
52.217.81.156                 github-com.s3.amazonaws.com
52.216.132.195                github-production-release-asset-2e65be.s3.amazonaws.com
52.217.41.76                  github-production-repository-file-5c1aeb.s3.amazonaws.com
16.182.97.81                  github-production-user-asset-6210df.s3.amazonaws.com
192.0.66.2                    github.blog
140.82.112.3                  github.com
140.82.113.17                 github.community
185.199.110.154               github.githubassets.com
151.101.193.194               github.global.ssl.fastly.net
185.199.110.153               github.io
185.199.111.133               github.map.fastly.net
185.199.110.153               githubstatus.com
140.82.112.25                 live.github.com
185.199.111.133               media.githubusercontent.com
185.199.111.133               objects.githubusercontent.com
13.107.42.16                  pipelines.actions.githubusercontent.com
185.199.111.133               raw.githubusercontent.com
185.199.111.133               user-images.githubusercontent.com
13.107.213.40                 vscode.dev
140.82.113.22                 education.github.com


# Update time: 2024-01-17T07:52:51+08:00
# Update url: https://raw.hellogithub.com/hosts
# Star me: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容