git push origin master fatal: 'origin' does not appear to be a git repository fatal: Could not read

在Xcode中push好久都没有反应,然后就给停止了 

子啊终端中尝试进行push,结果还是出现错误:



git push origin master

fatal: 'origin' does not appear to be a git repository

fatal: Could not read from remote repository.


Please make sure you have the correct access rights

and the repository exists.




结果检查到:Remotes居然被我修改了,默认是origin 现在变成testFlight 果断会报错  。



 

修正即可:

git status

On branch master

nothing to commit, working directory clean

bogon:testFlight ycf$  git push testFlight master

Counting objects: 35, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (30/30), done.

Writing objects: 100% (35/35), 10.76 KiB | 0 bytes/s, done.

Total 35 (delta 5), reused 0 (delta 0)

To https://github.com/matiji66/testFlight.git

   aa09f31..a5cee9e  master -> master

bogon:testFlight ycf$ 





开始

首先我们新建一个工程,记得要勾选Create git repository on:

这说明使用Source Control,会默认在工程中创建git repository。然后工程新建完成后,会在右侧边栏看到这些信息,说明已经启用Source Control

如果没有使用Source Control,则是这样的:

现在我们已经在工程中启用了Source Control,这样就可以使用git来管理工程版本了

但是如果我们想对一个未启用git的工程加入git的功能怎么做呢?我们可以使用命令行来开启此功能,新建一个工程,不勾选Create git repository on,此时我们没有开启Source Control,然后我们手动创建git管理,如下图所示:

1
2
3
YiBantekiiMac-3:UseGit YiBan$ cd /Users/YiBan/Documents/iOS_Dev/ManualGitDemo
YiBantekiiMac-3:ManualGitDemo YiBan$ git init
Initialized empty Git repository in /Users/YiBan/Documents/iOS_Dev/ManualGitDemo/.git/

使用

1
git init

来初始化一个空的git仓库,现在使用ls-la命令查看目录下的所有文件(包含隐藏文件)

1
total 16
1
2
3
4
5
6
7
drwxr-xr-x   7 YiBan  staff   238  5 12 16:10 .
drwxr-xr-x  52 YiBan  staff  1768  5 12 16:06 ..
-rw-r--r--@  1 YiBan  staff  6148  5 12 16:10 .DS_Store
drwxr-xr-x   9 YiBan  staff   306  5 12 16:06 .git
drwxr-xr-x  12 YiBan  staff   408  5 12 16:06 ManualGitDemo
drwxr-xr-x   5 YiBan  staff   170  5 12 16:06 ManualGitDemo.xcodeproj
drwxr-xr-x   5 YiBan  staff   170  5 12 16:06 ManualGitDemoTests

此时我们看到除了三个文件之外还有两个隐藏文件,.DS_Store和.git,.DS_Store是由OS X生成的文件,包含了文件夹中的位置属性,.git则是启用了Source Control自动生成的目录,然后使用git status查看当前状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
 
Initial commit
 
Untracked files:
  (use"git add <file>..." to include in what will be committed)
 
    .DS_Store
    ManualGitDemo.xcodeproj/
    ManualGitDemo/
    ManualGitDemoTests/
 
nothing added to commit but untracked files present (use "git add" to track)

说明初始化成功了,显示出了未被追踪的文件。不过我们并不希望把.DS_Store也加入的git中,因为那文件对我们没有任何用处,我们可以忽略它,具体做法是:新建一个文件,命名为.gitignore,然后使用文本编辑器输入以下信息: 也可以从github上下载 别人写的.gitignore内容 ,这里只是列举部分被忽略的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
# Xcode
<br>.DS_Store
<br>*/build/*<br>
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile <br>*.moved-aside
DerivedData
.idea/
*.hmap

保存至工程文件夹中,这样我们目录中就多出一个.gitignore文件了,这时我们再用git status命令查看当前状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
 
Initial commit
 
Untracked files:
  (use"git add <file>..." to include in what will be committed)
 
    .gitignore
    ManualGitDemo.xcodeproj/
    ManualGitDemo/
    ManualGitDemoTests/
 
nothing added to commit but untracked files present (use "git add" to track)

这里看到已经没有.DS_Store了,说明.gitignore已经把.DS_Store忽略了。现在可以提交了,使用

1
git add .

此命令先将文件添加至暂存区域,但还没有提交,查看下状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
 
Initial commit
 
Changes to be committed:
  (use"git rm --cached <file>..." to unstage)
 
    newfile:   .gitignore
    newfile:   ManualGitDemo.xcodeproj/project.pbxproj
    newfile:   ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
    newfile:   ManualGitDemo/AppDelegate.h
    newfile:   ManualGitDemo/AppDelegate.m
    newfile:   ManualGitDemo/Base.lproj/Main.storyboard
    newfile:   ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json
    newfile:   ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json
    newfile:   ManualGitDemo/ManualGitDemo-Info.plist
    newfile:   ManualGitDemo/ManualGitDemo-Prefix.pch

现在进行提交,使用git commit -m "Initail"命令,引号内的内容是提交的注释,随便写什么都可以:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
YiBantekiiMac-3:ManualGitDemo YiBan$ git commit -m "Initial"
[master (root-commit) 83bbefc] Initial
 17 files changed, 803 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 ManualGitDemo.xcodeproj/project.pbxproj
 create mode 100644 ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 create mode 100644 ManualGitDemo/AppDelegate.h
 create mode 100644 ManualGitDemo/AppDelegate.m
 create mode 100644 ManualGitDemo/Base.lproj/Main.storyboard
 create mode 100644 ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json
 create mode 100644 ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json
 create mode 100644 ManualGitDemo/ManualGitDemo-Info.plist
 create mode 100644 ManualGitDemo/ManualGitDemo-Prefix.pch

再查看下状态:

1
2
3
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
nothing to commit, working directory clean

好了,当前工作区是干净的,代码都已经提交完毕了。我们可以用Xcode提交代码,也可以用命令来提交,但是用命令行的话可以做的事情更多一些。使用Xcode可以查看提交的历史纪录,Source Control->History:

添加工程至GitHub

首先必须有GitHub的帐号,没有的话去注册一个,并且还要创建SSH,GitHub使用了公私密钥,确保与你的电脑通讯过程是安全的。

SSH创建过程是这样的:

1. 在命令行输入cd ~/.ssh,然后ls,看看此文件夹下有哪些文件,如果有id_rsa.pub或者id_dsa.pub(名字可能会不同),说明你已经有SSH keys了,你可以将它添加到你的账户中

2. 如果没有的话,你讲得到"No such file or directory"这个错误信息,此时你可以通过命令生成出来:

1
ssh-keygen -t rsa -C "YOUR EMAIL"

在那里填写你的email地址,之后会被要求填写密码,此时的SSH keys就生成好了,有了SSH Keys后将其添加至你的GitHub账户中就可以了,在账户设置中找到SSH keys这一项,然后填写title和key,现在,你的SSH Key就和GitHub账户绑定了

前往个人主页,新建一个repository(网页右上方),会要输入一些信息:

输入Repository name和描述,然后选创建,会看到repository的链接:

把链接赋值下来,前往Xcode中,Source Control->第一项->Configure...,之后选Remotes:

Add Remote中,输入Name(你工程的名字)和Address(之前的链接地址),然后Source Control->Push,选择刚刚新建的链接,Push~

现在刷新下GitHub主页,你的工程已经添加成功了~!



不过我在创建选择了 add .gitignore  和 license



 

结果 就报出如下的错误 :


The local repository is out of date.Make sure all changes have been pulled from the remote repository and try again.

字面意思很好理解, "确保所有东西都从远程拉下来" .
是因为你再github新建的项目中有文件在本地没有造成的,需要将它pull到终端,先cd到你项目目录
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并

直接点 :

git pull https://github.com/matiji66/testFlight.git

From https://github.com/matiji66/testFlight

 * branch            HEAD       -> FETCH_HEAD

Merge made by the 'recursive' strategy.

 .gitignore | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++

 LICENSE    | 21 +++++++++++++++++++++

 2 files changed, 74 insertions(+)

 create mode 100644 .gitignore

 create mode 100644 LICENSE

bogon:testFlight ycf$ git  status

On branch master

nothing to commit, working directory clean



然后继续:

 git push --set-upstream origin master 这是默认的 Add a Remote.

 //git pull  --rebase origin master对应的下拉到本地操作


 git push --set-upstream testFlight  master 这是自定义的name.


参见下图



注:说明

git pull <远程主机名> <远程分支名>:<本地分支名>


git pull --rebase xxx master
  • xxx 是Add Remote的Name 默认为origin
  • master 是你的分支名称 默认是master

从这次的 操作来看有两种上传方案 :
一种是采用Xcode 直接进行上传 
另外一种就是采用终端来进行上传



    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值