Git入门及上传项目到GitHub(上)

今天上传一个小demo到GitHub中,做简要记录和学习:

1、创建版本库

1.1、创建进入目录

  • 创建一个空目录:
  $ mkdir learngit
  $ cd learngit
  $ pwd   //显示当前目录
  • 或者进入已经存在的项目目录
  $ cd /Users/safiri/Downloads/ZSBannerScrollViewDemo   

1.2、把目录变成Git可以管理的仓库

$ git init  
//Initialized empty Git repository in /Users/safiri/Downloads/ZSBannerScrollViewDemo/.git/
$ ls -ah //  查看默认是隐藏的.git目录

1.3、把文件添加到版本库

  • 例 1
    编写一个README.md文件并添加到ZSBannerScrollViewDemo版本库:
  $ vim README.md
  // 1. 一定要在Git仓库的目录下创建要添加的文件,可以手动创建并编辑内容。这里用vim创建并编辑了。
  
  $ git add README.md //把文件添加到仓库
  $ git commit -m "添加一个项目介绍文件README.md" //把文件提交到仓库
  
  • 例2
    commit可以一次提交很多文件,所以你可以多次add不同的文件
  $ git add file1.txt
  $ git add file2.text file3.txt
  $ commit -m "add 3 files."

2、远程仓库

  • 自己搭建一台运行Git的服务器。

  • GitHub网站提供的Git仓库托管服务:

由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要进行设置:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

  $ ssh-keygen -t rsa -C "[email protected]"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

Git入门及上传项目到GitHub(上)_第1张图片
add ssh key

点“Add Key”,你就应该看到已经添加的Key。

注意1:建议用命令复制ssh key,用文本软件打开有可能出错!

mac:
    pbcopy < ~/.ssh/id_rsa.pub
windows:
    clip < ~/.ssh/id_rsa.pub
linux:
    sudo apt-get install xclip
    xclip -sel clip < ~/.ssh/id_rsa.pub

注意2

  • GitHub只要知道了你的公钥,就可以确认只有你自己才能推送修改。
  • GitHub允许你添加多个Key,只要把需要提交的每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
  • GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
  • 如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。

2.1、添加远程库

一般情况下已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步。

刚才我创建了一个本地的Git仓库ZSBannerScrollViewDemo

第1步,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
第2步,在本地的ZSBannerScrollView仓库下命令:
git remote add [shortname] [url]命令,给远程仓库一个别名shortname

  $ git remote add origin [email protected]:safiriGitHub/ZSBannerScrollView.git
  

第3步,把本地库的所有内容推送到远程库上:

  #如果发生远程与本地仓库的冲突,要先将远程仓库的更新下载更新到本地仓库
  $ git pull origin master

  
  $ git push -u origin master
  //由于远程库是空的,我们第一次推送master分支时,加上了-u参数,
  //Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

  //从现在起,只要本地作了提交,就可以通过命令:
  $ git push origin master

# 如果因为两个仓库不同,发现refusing to merge unrelated histories,无法pull

因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码:git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories

假如我们的源是origin,分支是master,那么我们 需要这样写git pull origin master --allow-unrelated-histories  

2.2、从远程库克隆。

第1步,登陆GitHub,创建一个新的仓库,名字叫ZSBannerScrollView。

第2步是用命令git clone克隆一个本地库:

 $ git clone [email protected]:safiriGitHub/ZSBannerScrollView.git
  • Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。但通过ssh支持的原生git协议速度最快。

  • 使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

  • 如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。

第3步,在克隆的本地库文件夹下添加要上传的项目、文件等等。
第4步,cd进入ZSBannerScrollView文件夹下

  $ git add .  //把所有的新文件添加。
  $ git commit -m "添加文件"
  $ git push origin master //推送到远程库。

有跟新或者改动的话重复第三第四步不断更新。

另外,要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

更新ing

你可能感兴趣的:(Git入门及上传项目到GitHub(上))