iOS MAC上git的详细使用/上传到github
上传到gitHub的详细使用步骤:SSH keys是什么东西可自己查,原先自己也疑惑,为什么有些教程需要创建,有些又不用呢?检索之后发现,其实并不一定要SSH keys,百度知道上有一个很好的答案:“ssh是一种安全的传输模式,github要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码,用以验证你是否为合法用户,为了省去每次都要输入密码的步骤,采用shh公钥,密钥;也就是你说...
上传到gitHub的详细使用步骤:
SSH keys是什么东西可自己查,原先自己也疑惑,为什么有些教程需要创建,有些又不用呢?检索之后发现,其实并不一定要SSH keys,百度知道上有一个很好的答案:
“ssh是一种安全的传输模式,github要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码,用以验证你是否为合法用户,为了省去每次都要输入密码的步骤,采用shh公钥,密钥;也就是你说的sshkey来验证你是否为合法用户,在你的电脑生成了一个唯一的ssh公钥和私钥,公钥放到github上面,当你推送的时候,git就会匹配你的私钥是否跟github上面的公钥是配对的,正确就认为你是合法的,允许推送。sshkey可以理解为是你的身份标识,放在github上面表明你是这个项目的一个开发人员,但是别人是可以截获的,你本机的私钥别人就无法截获,sshkey就可以保证每次传输都是安全的。”
1.首先在本地创建ssh key;打开终端输入:
ssh-keygen -t rsa -C "your_email@youremail.com"
后面的your_email@youremail.com
改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/
下生成.ssh
文件夹,进去,打开id_rsa.pub
,复制里面的key
。用这个命令打开id_rsa.pub
:cat ~/.ssh/id_rsa.pub
回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
验证是否成功:在终端中输入
ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
2.配置github:把本地仓库传到github上之前还需要设置username和email,因为github每次commit都会记录他们。github的用户名,email就是自己github的注册邮箱;
git config --global user.name "your name(github的用户名)"
git config --global user.email "your_email@youremail.com(gitHub主册的邮箱)"
3.cd 到本地存放代码的文件夹;告诉Git这个文件夹是我们需要跟踪的项目。所以我们发送这个命令来初始化一个新的本地Git代码库,本地初始化一个项目
命令:git init
Git会在这个文件夹内创建一个名为.git的隐藏文件夹,那就是你的本地代码库。
***如果是在gitHUb上创建完仓库后,然后命令:git clone gitHub的地址 到本地文件夹(本地代码库),这时就建立的本地和远程代码库的连接,相当于执行了git init 和 git remote add origin <你的项目地址>。
4.第一次吧代码推送到远程仓库前需要建立远程仓库链接:
在终端中:git remote add origin <你的项目地址>
//注:项目地址形式为:https://gitHub.com/github上的用户名/仓库地址.git (如果前面的报url错误,就用过这个git remote add origin https://用户名@github.com/用户名/仓库名.git) 或者 git@gitHub.com:github上的用户名/仓库名.git
git remote add origin git@gitHub.com:xxx/仓库名.git
origin是远程仓库的名字;
5.查看远程仓库的信息;
终端输入:git remote -v
得到的结果:origin git@github.com:michaelliao/learngit.git (fetch)
origin git@github.com:michaelliao/learngit.git (push)
本地库已经关联了名字叫origin的远程库,并且,该远程库指向GitHub。
6.删除已经关联的名叫origin的远程仓库;
终端输入:git remote rm origin
7.如果想要克隆一个项目到本地:
cd到一个文件存放地址,然后在终端执行:git clone <项目地址>
克隆后的本地文件夹就个远程仓库建立了链接;
8.git仓库的基本操作:
**1.修改仓库名:git remote rename 原来的远程仓库名 新的远程仓库名
**2.不通过克隆,把远程仓库拉取到本地仓库:git remote add 远程仓库名 本地仓库名
**3.修该仓库名对应的远程仓库地址:git remote set-url 远程仓库名 新的远程仓库地址
9.进入你已经初始化好的或者克隆项目的目录,然后执行(从线上拉取origin仓库的主分支master下来到本地):
origin是远程仓库,master是主分支;
git pull origin master
10.推送到远程仓库;
//第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
git add .
//第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支本地仓库,
git commit -m "第一次提交到本地仓库"
//第三步推送到远程仓库origin的主分支master
git push origin master
11.分支操作;https://blog.csdn.net/u014041012/article/details/50676702
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge 被合并的分支
删除分支:git branch -d <name>
删除码云上的分支 git push --delete origin <name>
看看分支历史:git log
***1.创建并切换到分支:git checkout -b dev
***2.把分支dev和远程仓库建立连接:git remote add dev git@gitHub.com:github用户名/仓库名.git
***3.建立远程链接后,我们就可以在dev分支上正常提交:
git add 要提交的文件(或者.表示全部提交)
git commit -m "注释"
提交分支:git pull origin dev
12.忽略文件的设置:
如果忽略文件不生效,执行下面其中一句话,意思是放弃跟踪要忽略的文件;
git rm -r --cached .
git rm -r --cached file(要忽略的文件)
忽略文件的注意事项:https://blog.csdn.net/xmyzlz/article/details/8592302
13.创建许可证:https://blog.csdn.net/qq_35246620/article/details/77647234
常见的开源许可证包括:
Apache License 2.0
GNU General Public License v3.0
MIT License
14.ssh和https方式的区别:
clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key下。意思就是使用SSH协议作为传输协议时,服务器无法提供匿名访问。也就是说,进行clone之前必须先通过认证,把你本地访问github时提供的公钥上传到任何一个github账号的SSH key列表。而对于使用https方式来讲,就没有这些要求。push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh里, key时设置了密码,则需要验证密码。而对于使用https方式来讲,每次push都需要验证用户名和密码。
15.gitconfig配置:https://www.jianshu.com/p/a1908f55bef8
.git文件夹下有config文件。
执行git config --list
,查看git
的配置信息
16.常遇到的问题:
*****1.在不提交当前分支的前提下,切换到主分支:解决:在当前分支上执行 $ git stash 命令,将当前分支存起来 https://blog.csdn.net/asheandwine/article/details/79003270
*****2.提交本地分支到远程仓库的几种情况:
remote_branch远程分支,local_branch本地分支;
a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
git push
b.远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch
git push -u origin/remote_branch
//我们来创建一个新的本地分支dev
git checkout –b dev
//重置它的起始点
git reset –hard origin/dev // origin/dev 意味着origin索引的远程仓库有dev分支(也就是我们GitHub中对应的库里有我们的dev库)
如果远程仓库中没有origin/dev这个分支的话,你只需要创建一个本地分支dev,然后将它推送到远程仓库, 这样本地的分支dev和原创跟中的分支origin/dev之间建立一个联系
git push –u origin dev
****或者一步到位,创建远程origin
的dev
分支到本地(前提是远程仓库 有dev分支):git checkout -b dev origin/dev(要下面一步建立连接后才能 git pull 等操作);
***如果远程仓库没有分支的话,本地分支dev需要和远程分支origin/dev建立连接:git branch –-set-upstream dev origin/dev
c.远程没有remote_branch分支并,本地已经切换到local_branch
git push origin local_branch:remote_branch
*********************
gitHub中fork的使用:https://www.jianshu.com/p/8c69d1021d98
fork就是吧别人github上的仓库复制一份到自己的账号中;如果要把自己修改过的内容发给原作者,通过创建一个 Pull Request,发给原作者,只要原作者=同意,就会把我的修改合并到现有的项目中去。
******报错:fatal: unable to access 'https://github.com/xx/cocoaTest.git/': The requested URL returned error: 403
git
在 pull/push
代码的时候提示:The Requested URL return error 403
,这表示我们没有权限来pull/push
相关代码。
可能解决1:把https样式的url地址改成git样式的,但是要配置sshKey,然后上传到github;
可能解决2:配置https://www.jianshu.com/p/a1908f55bef8
*********GitHub上创建组织organization,团队Team,仓库repository,实现多人开发:https://blog.csdn.net/quenliqiyuan/article/details/77478337
****git上传文件出错[rejected] master -> master (fetch first) error: failed to push some refs to '
解决:出现这个问题是因为github中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并:git pull --rebase origin master
*****同一台电脑使用两个github账号:https://blog.csdn.net/wolfking0608/article/details/78512171
*****tag:
*****版本回退:
*****冲突解决:
git一些命令使用:
用户信息保存在用户目录下的 .gitconfig配置文件中,
查看当前所有配置: git config -l
查看当前代码库状态:git status
回到当前版本,放弃所有没有提交的修改: git reset --hard HEAD
回到上一个版本: git reset --hard HEAD^
回到之前第3个修订版本: git reset --hard HEAD~3
回到指定版本号的版本: git reset --hard e695b67(版本号前七位)
查看分支引用记录: git reflog
查看文件变化: git diff
撤销对文件做的修改: git checkout Person.h
建立空白代码库(专门用于团队开发): git init --bare
.gitignore 忽略文件,将以下命令一次性粘贴到命令行中:
echo -e "# Xcode
#
build/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/" > .gitignore
--------------------------------------------------------------------------------
将.gitignore添加到代码库 :git add .gitignore
分支管理 - Tag
================================================================================
查看当前标签: git tag
在本地代码库给项目打上一个标签: git tag -a v1.0 -m 'Version 1.0'
将标签添推送到远程代码库中: git push origin v1.0
使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本
签出v1.0标签: git checkout v1.0
从签出状态创建v1.0bugfix分支: git checkout -b bugfix1.0
查看远程分支: git branch -r
删除远程分支: git branch -r -d origin/bugfix1.0
++++++++++++++++++++++++++++++++++++++++++++++
一、安装好了 Git 之后,设置 GitHub 连接
1, 检查是否存在 SSH KEYS
$ cd ~/.ssh
如果没有 .ssh 目录,请跳到第 3 步。
2, 如果有 .SSH 目录,请备份好你的 SSH KEY
$ ls
$ mkdir key_backup //创建备份文件夹
$ cp id_rsa* key_backup //移动你的 key 文件到备份文件夹
$ rm id_rsa*
3, 创建一个新的 SSH KEY
$ ssh-keygen -t rsa -C "your_email@youremail.com"
//记得输入你的github账号的邮箱
//会输出下面语句
Generating public/private rsa key pair. Enter file in which to save thekeys (/Users/your_user_directory/.ssh/id_rsa): //这里需要按下 enter 键就好
按下 enter 之后,又会出现下面的提示:
//输入回车后提示输入一个类似于密码的自定义的通行证号,如果直接回车则为空
Enter passphrase(empty for no passphrase):
//提示重新输入以便确认输入是否正确
Enter same passphraseagain:
随后,你会收到一大串的提示,大概的意思是告诉你创建好了 id_rsa 和 id_rsa.pub 文件。
4, 在 GITHUB 上添加你的 SSH KEY
在github中添加ssh(如图示):
登陆github,选择Account Settings-->SSH Keys 添加ssh
Title:xxxxx@gmail.com
Key:打开你生成的id_rsa.pub文件,将其中内容拷贝至此。创建成功会有相应的提示。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdMXDL8/0dstuh6wWavbIooDMNcTE48wl2ggvFCInS+0sBUxiVFkKVJcEG6CoHVPp2xPL+IR2wmO7TgZir+mSwa7MQTnB1ugrszBl/jLvwR84kf8I4jK6wjHyuYw+CQHn0yAvO6YbGJoY7w+VnZXktfe8hkQfpv8ouyNmbQSxBB9eJtAyFKroManfM0jxXBleKLXn//YXSK/yDz6LOHATbD26aLC6QoRKpajcmb02AlriKVWtghNZokbH5u2MhPl+Moa7hiHRqaNEDMkm24ag75m+U3acyxmdq/OV+Qjo3MgS40QNV9uJDoKZ3yHME2sLok2nVe7kDLMGoiXTFcFRP li@gmail.com
add SSH key
5, 验证你的 GITHUB 连接
$ ssh -T git@github.com
将会显示一下信息
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
输入yes后,显示出下列信息表示连接成功
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
二、配置个人信息
1.设置用户名和邮箱
Git通过检测用户名和邮箱来跟踪进行commit的用户
设置本地git个人信息:
$git config --global user.name "your real name"
$git config --global user.email "xxxxx@gmail.com"
2.设置GitHub网站标记
单击网站中的Account Settings>Account Admin,将APT Token中的那串字符串记录下来,输入到下列命令中:
$git config --global github.user username
$git config --global $github.token 获取到的token
至此,git和github的设置就完成了。下面就是如何将本地代码push到github上,以及如何从github上pull代码了:
三、创建一个新的代码库
打开网站中的创建代码库按钮https://github.com/ --> New Repository 输入Repository信息 projectName,
new repository
或直接使用https://github.com/repositories/new链接打开。输入相应的信息后单击创建按钮。
实例:
1.创建完成后在本地创建一个文件夹并在该文件夹下创建一个README文件
mkdir ~/Hello-World
在user目录下创建一个名为Hello-World的项目文件夹(~代表用户目录,即:C:\Documents and Settings\当前登陆系统的用户名)
cd ~/Hello-World //更改当前目录到Hello-World目录中
git init //初始化该文件夹
将会提示以下信息:Initialized empty Git repository in /Users/your_user_directory/Hello-World/.git/touch README
2.创建完README以后就需要添加并提交文件了
git add README
git add READMEgit commit -m "first commit"
至此已经将要更改的文件提交到头信息中,但并没有真正提交到网站上去,还需要执行下面两个命令:
//git remote add origin git@github.com:gbyukg/zf-tutorial.git
git remote add origin https://github.com/jjpassion/myTest.git
//(若是第一次提交该项目的文件或是修改项目文件名后则需要这行这个命令,以后就可不用执行该命令)
git push -u origin master
3、从github中pull代码:
在github中搜到你想要pull的代码,如https://github.com/edgecase/ruby_koans
选择fork,将此repository fock到你的repository下
在本地创建local repository并初始化
使用命令:
$git pull git@github.com:xxxxx/ruby_koans.git
将github上的代码pull到local repository中
========
第一步:建立git仓库
cd到你的本地项目根目录下,执行git命令
git init
- 第二步:将项目的所有文件添加到仓库中
git add .
- 如果想添加某个特定的文件,只需把.换成特定的文件名即可
第三步:将add的文件commit到仓库
git commit -m "注释语句"
第五步:重点来了,将本地的仓库关联到github上
git remote add origin https://github.com/hanhailong/CustomRatingBar
后面的https链接地址换成你自己的仓库url地址,也就是上面红框中标出来的地址
第六步:上传github之前,要先pull一下,执行如下命令:
git pull origin master
第七步,也就是最后一步,上传代码到github远程仓库
git push -u origin master
================出现的错误
之前一直用https来push到github上, 今天试了下用ssh, 把origin改为ssh地址后, 用git push -u origin master出现错误:
出现错误:Updates were rejected because the tip of your current branch is behind
解决:有如下几种解决方法:
1.使用强制push的方法:
$ git push -u origin master -f
这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
2.push前先将远程repository修改pull下来
$ git pull origin master
$ git push -u origin master
3.若不想merge远程和本地修改,可以先创建新的分支:
$ git branch [name]
然后push
$ git push -u origin [name]
更多推荐
所有评论(0)