iOS项目 自带git 版本管理向git迁移 fatal:unable to acdess 'http:….":The requested URL returned error: 403

项目要迁移到git

一。删除原本git,在重新设置新的git地址

关闭Xcode

打开终端

1.首先先进入到项目目录 cd ****

2.删除原本的git仓库 rm -fr .git

git init

git remote add origin http://******************

git add .

报了好几次这个错

hint: You've added another git repository inside your current repository.

hint: Clones of the outer repository will not contain the contents of

hint: the embedded repository and will not know how to obtain it.

hint: If you meant to add a submodule, use:

hint: 

hint: git submodule add Pods

hint: 

hint: If you added this path by mistake, you can remove it from the

hint: index with:

hint: 

hint: git rm --cached Pods

hint: 

hint: See "git help submodule" for more information.

 用:git remote rm origin

然后继续

git remote add origin http://******************

git add .

git commit -m "Initial commit"

git pull --rebase origin master

git push -u origin master

3.然后用Xcode,push

二、常用命令

git 部分命令:

git init   初始化本地版本库

git add .  把所有变化的文件提交到暂存区

git commit -m  "提交信息"  提交所有更新的文件

git remote add  origin  url     添加远程版本库

git pull  拉取文件

git push  推送文件

git status 查询状态

一直大多数的时间都是在使用更快捷的桌面工具时候,渐渐的会失去使用命令行来进行工作部署及提交,今天就来重温一下Git的命令行。

使用命令行创建并提交到Github仓库中。

git init在项目中创建.git文件。

2.git add .将项目中所有修改过的工作文件提交暂存区。

3.git status查看项目的提交状态

4.git commit -m '这里写提交的信息'提交被add进来的文件

5.git remote add 仓库名称 仓库地址将文件和Github仓库关联 例如:

git remote add origin https://github.com/xxxx/testFiel.git

6.git remote查看仓库的名称

7git remote remove testName删除testName关联仓库

8.git push origin master将origin仓库推送到master分支

9.git reset --hard HEAD回到当前版本

10.git reset --hard HEAD^^回到上上个版本

11.git reset --hard HEAD~2回到往前2个版本

12.git reset --hard 七位版本号回到指定版本

13.git log查看日志版本信息

14.git reflog查看日志七位版本号及回退信息

15.git config --global user.name "名称"配置全局名称

16.git config --global uesr.email "邮箱"配置全局邮箱

17.git config -l查看配置信息

18.git config alias.st "status"给status命令起别名为st,下次查询状态则可以输入命令git st查看状态,git config alias.ci "commit -m"将commit -m起别名成ci则查询命令为git ci "提交信息"

19.git config --global alias.st "status"将status起个全局别名st

20.git rm test.m将test.m文件删除

21.git init --bare多人开发 代码共享

·———————————————————————·

Git常用命令

查看、添加、提交、删除、找回,重置修改文件

git help # 显示command的help

git show # 显示某次提交的内容 git show $id

git co -- # 抛弃工作区修改

git co . # 抛弃工作区修改

git add # 将工作文件修改提交到本地暂存区

git add . # 将所有修改过的工作文件提交暂存区

git rm # 从版本库中删除文件

git rm --cached # 从版本库中删除文件,但不删除文件

git reset # 从暂存区恢复到工作文件

git reset -- . # 从暂存区恢复到工作文件

git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改

git ci git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"

git ci --amend # 修改最后一次提交记录

git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象

git revert HEAD # 恢复最后一次提交的状态

查看文件diff

git diff # 比较当前文件和暂存区文件差异 git diff

git diff # 比较两次提交之间的差异

git diff .. # 在两个分支之间比较

git diff --staged # 比较暂存区和版本库差异

git diff --cached # 比较暂存区和版本库差异

git diff --stat # 仅仅比较统计信息

查看提交记录

git log git log # 查看该文件每次提交记录

git log -p # 查看每次详细修改内容的diff

git log -p -2 # 查看最近两次详细修改内容的diff

git log --stat #查看提交统计信息

tig

Mac上可以使用tig代替diff和log,brew install tig

Git 本地分支管理

查看、切换、创建和删除分支

git br -r # 查看远程分支

git br # 创建新的分支

git br -v # 查看各个分支最后提交信息

git br --merged # 查看已经被合并到当前分支的分支

git br --no-merged # 查看尚未被合并到当前分支的分支

git co # 切换到某个分支

git co -b # 创建新的分支,并且切换过去

git co -b # 基于branch创建新的new_branch

git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除

git co $id -b # 把某次历史提交记录checkout出来,创建成一个分支

git br -d # 删除某个分支

git br -D # 强制删除某个分支 (未被合并的分支被删除的时候需要强制分支合并和rebase)

git merge # 将branch分支合并到当前分支

git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交

git rebase master # 将master rebase到branch,相当于: git co && git rebase master && git co master && git merge

Git补丁管理(方便在多台机器上开发同步时用)

git diff > ../sync.patch # 生成补丁

git apply ../sync.patch # 打补丁

git apply --check ../sync.patch #测试补丁能否成功

Git暂存管理

git stash # 暂存

git stash list # 列所有stash

git stash apply # 恢复暂存的内容

git stash drop # 删除暂存区

Git远程分支管理

git pull # 抓取远程仓库所有分支更新并合并到本地

git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并

git fetch origin # 抓取远程仓库更新

git merge origin/master # 将远程主分支合并到本地当前分支

git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支

git co -b origin/ # 基于远程分支创建本地分支,功能同上

git push # push所有分支

git push origin master # 将本地主分支推到远程主分支

git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)

git push origin # 创建远程分支, origin是远程仓库名

git push origin : # 创建远程分支

git push origin : #先删除本地分支(git br -d ),然后再push删除远程分支

Git远程仓库管理

git remote -v # 查看远程服务器地址和仓库名称

git remote show origin # 查看远程服务器仓库状态

git remote add origin git@github:robbin/robbin_site.git# 添加远程仓库地址

git remote set-url origin [email protected]:robbin/robbin_site.git# 设置远程仓库地址(用于修改远程仓库地址) git remote rm  # 删除远程仓库

创建远程仓库

git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库

scp -r my_project.git [email protected]:~# 将纯仓库上传到服务器上

mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库

git remote add origin [email protected]:robbin/robbin_site.git# 设置远程仓库地址

git push -u origin master # 客户端首次提交

git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track

git remote set-head origin master # 设置远程仓库的HEAD指向master分支

也可以命令设置跟踪远程库和本地库

git branch --set-upstream master origin/master

git branch --set-upstream develop origin/develop



pull代码的时候 还发生了 终端 git pull可以

但是sourcetree不可以  403

fatal:unable to acdess 'http:….":The requested URL returned error: 403

这个时候就要这样

$ git config --global credential.helper osxkeychain 


原因如下

凭证存储

如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。 这在使用双重认证的情况下会更麻烦,因为你需要输入一个随机生成并且毫无规律的 token 作为密码。

幸运的是,Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项:

默认所有都不缓存。 每一次连接都会询问你的用户名和密码。

“cache” 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。

“store” 模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。

如果你使用的是 Mac,Git 还有一种 “osxkeychain” 模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。

如果你使用的是 Windows,你可以安装一个叫做 “Git Credential Manager for Windows” 的辅助工具。 这和上面说的 “osxkeychain” 十分类似,但是是使用 Windows Credential Store 来控制敏感信息。 可以在 https://github.com/Microsoft/Git-Credential-Manager-for-Windows 下载。

你可以设置 Git 的配置来选择上述的一种方式

$ git config --global credential.helper cache

部分辅助工具有一些选项。 “store” 模式可以接受一个 --file  参数,可以自定义存放密码的文件路径(默认是 ~/.git-credentials )。 “cache” 模式有 --timeout  参数,可以设置后台进程的存活时间(默认是 “900”,也就是 15 分钟)。 下面是一个配置 “store” 模式自定义路径的例子:

$ git config --global credential.helper 'store --file ~/.my-credentials'

Git 甚至允许你配置多个辅助工具。 当查找特定服务器的凭证时,Git 会按顺序查询,并且在找到第一个回答时停止查询。 当保存凭证时,Git 会将用户名和密码发送给 所有 配置列表中的辅助工具,它们会按自己的方式处理用户名和密码。 如果你在闪存上有一个凭证文件,但又希望在该闪存被拔出的情况下使用内存缓存来保存用户名密码,.gitconfig 配置文件如下:

[credential]

    helper = store --file /mnt/thumbdrive/.git-credentials

    helper = cache --timeout 30000


如果有帮助 请点个赞再走吧❤️ 

谢谢啦

你可能感兴趣的:(iOS项目 自带git 版本管理向git迁移 fatal:unable to acdess 'http:….":The requested URL returned error: 403)