项目要迁移到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
git show # 显示某次提交的内容 git show $id
git co --
git co . # 抛弃工作区修改
git add
git add . # 将所有修改过的工作文件提交暂存区
git rm
git rm
git reset
git reset -- . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git ci
git ci --amend # 修改最后一次提交记录
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看文件diff
git diff
git diff
git diff
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
查看提交记录
git log git log
git log -p
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
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b
git br -d
git br -D
git merge
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
git rebase master
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
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支
git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push origin
git push origin
git push origin :
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
如果有帮助 请点个赞再走吧❤️
谢谢啦