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 远程仓库地址

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 "[email protected]"
    [email protected]换成自己的邮箱账号。创建好后,会在.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方法的代码

你可能感兴趣的:(iOS git的使用,开发过程中问题记录)