之前做开发的时候,用过一段时间git代码管理工具,用命令行操作感觉十分高大上,今天我想从头总结一篇Mac系统下如何利用git上传代码到github上的学习。

目录

一、安装Git                  

参考文章:《Mac下使用Git上传代码到Github仓库

下载地址:https://git-scm.com/download/mac

下载后为.dmg文件,解压后双击安装.pkg文件

输入指令:

test:~ zhan$ git --version

git version 2.18.0

二、创建.ssh文件                 返回目录

打开终端,输入下面指令,查看.ssh是否存在

test:~ zhan$ cd ~/.ssh

test:.ssh zhan$

test:~ zhan$ cd .ssh/

test:.ssh zhan$ ls

known_hosts

查看文件夹下的文件,只有known_hosts,感觉少了点什么

如果没有.ssh文件夹,请参考《Mac如何添加生成ssh》 、《Mac生成添加ssh公钥

假设你在Github注册账号为: xxxx@xxx.com 
Terminal中运行

  1. //默认直接按 回车 就可以了
    test:.ssh zhan$ ssh-keygen -t rsa -C xxx@xxx.com
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/Users/zhan/.ssh/id_rsa):
  4. Enter passphrase (empty for no passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in /Users/zhan/.ssh/id_rsa.
  7. Your public key has been saved in /Users/zhan/.ssh/id_rsa.pub.
  8. The key fingerprint is:
  9. SHA256:xCNUrcwiwpMVb2Se4zucMD0V9+SX+WeZ4/TdAdX1Spk xxx@xxx.com
  10. The key's randomart image is:
  11. +---[RSA 2048]----+
  12. | ..+.o.. . .+|
  13. | .* o o.+ .=o|
  14. | . o Bo=. o.E .|
  15. | = .+.=+. o.oo|
  16. | oo.+.S .*+|
  17. | + + o.B|
  18. | = .+|
  19. | . |
  20. | |
  21. +----[SHA256]-----+

输入命令:ls,查看.ssh下的文件

id_rsa id_rsa.pub known_hosts

多出两个文件,.pub是公钥,另一个是密钥。

三、Github账号中添加Key            返回目录

点击【头像】 ->Settings ->SSH and GPG keys ->

点击【New SSH key】按钮

输入Title、Key

执行下面的命令行,直接复制文件里的内容:

pbcopy < ~/.ssh/id_rsa.pub

或查看:

cat ~/.ssh/id_rsa.pub

复制到里面后,点击【Add SSH key】按钮。

下面继续确认登录github的密码:

如果添加Key成功的话,如下图所示,同时你也会在邮箱里收到一个提醒邮件,内容是你添加了一个Key.

四、创建版本库Repository            返回目录

首先,返回到主页,www.github.com

进入到了 “Create a New Repository”页面:

紧接着按照以下步骤进行本地仓库的创建及代码上传。打开终端,输入以下命令:

  1. $ echo "TestRepository" >> README.md //新建一个README文档并添加内容,若上一步勾选了创建README.md,提交时导致冲突
  2. $ git init //初始化本地仓库
  3. $ git add README.md //添加刚刚创建的README文档
  4. $ git commit -m "你的注释...." //提交到本地仓库,并写一些注释
  5. $ git remote add origin git@github.com:yourname/xxxx.git
  6. //连接远程仓库并建了一个名叫:origin的别名,当然可以为其他名字,但是origin一看就知道是别名,youname记得替换成你的用户名
  7. $ git push -u origin master
  8. //将本地仓库的文件提交到别名为origin的地址的master分支下,-u为第一次提交,需要创建master分支,下次就不需要了

或者:

  1. //创建 README.md 文件, 并向里面写入`This Is My First Testing Description....`字符串。
  2.  
  3. echo "# This Is My First Testing Description...." >> README.md
  4. git init
  5. git add README.md
  6. git commit -m "first commit" //commit备注
  7. git remote add origin https://github.com/imthinktwice/TestRepository.git
  8. git push -u origin master

但是执行git commit -m "first commit"报错:


test:Git zhan$ git commit -m "first commit"

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'zhan@test.(none)')

参考:《git fatal: unable to auto-detect email address

解决办法,输入指令:

  1. git config --global user.email "you@example.com"
  2.  
  3. #查看本地配置
  4. git config --local -l
    #编辑config文件
    git config --local -e
  5.  
  6. 如何在终端编辑文件,参照:《Mac Git 配置全局gitconfig

再执行下面:

  1. #再执行命令
    git commit -m "first commit"
    #显示结果
  2. test:Git zhan$ git commit -m "first commit"
  3. [master (root-commit) 4d3f7a6] first commit
  4. 1 file changed, 1 insertion(+)
  5. create mode 100644 README.md

commit成功!!

再继续执行命令:

  1. git remote add origin git@github.com:yourname/xxxx.git
  2.  
  3. git push -u origin master
  4. =====================================================
  5. #result:
  6. Enumerating objects: 3, done.
  7. Counting objects: 100% (3/3), done.
  8. Writing objects: 100% (3/3), 221 bytes | 221.00 KiB/s, done.
  9. Total 3 (delta 0), reused 0 (delta 0)
  10. remote:
  11. remote: Create a pull request for 'master' on GitHub by visiting:
  12. remote: https://github.com/Owen-ET/TestRepository/pull/new/master
  13. remote:
  14. To github.com:Owen-ET/TestRepository.git
  15. * [new branch] master -> master
  16. Branch 'master' set up to track remote branch 'master' from 'origin'.

github中创建成功!!!!

再返回github网址查看:

看看,上传github上成功!!

五、上传更新新的代码到github上        返回目录

首先在之前上传的项目中,新建一个子项目,如图

输入命令:git status

查看项目下文件状态,如下:

  1. On branch master
  2. Your branch is up to date with 'origin/master'.
  3.  
  4. Untracked files:
  5. (use "git add <file>..." to include in what will be committed)
  6.  
  7. .DS_Store
  8. python_stu/
  9.  
  10. nothing added to commit but untracked files present (use "git add" to track)

其中“python_stu/”文件夹是我新建的,上传到github需要add添加

所以执行命令:

  1. #添加文件夹
  2. git add python_stu/
  3.  
  4. #提交文件夹,并注释
  5. git commit -m "上传py文件2018-09-19"
  6.  
  7. #继续查看状态,python_stu/文件夹已添加
  8. git status
  9.  
  10. On branch master
  11. Your branch is ahead of 'origin/master' by 1 commit.
  12. (use "git push" to publish your local commits)
  13.  
  14. Untracked files:
  15. (use "git add <file>..." to include in what will be committed)
  16.  
  17. .DS_Store
  18.  
  19. nothing added to commit but untracked files present (use "git add" to track)

继续执行

  1. test:Git zhan$ git pull #同步代码
  2.  
  3. Already up to date.
  4.  
  5. test:Git zhan$ git push origin #把代码推到服务器上
  6.  
  7. Enumerating objects: 5, done.
  8.  
  9. Counting objects: 100% (5/5), done.
  10.  
  11. Delta compression using up to 4 threads.
  12.  
  13. Compressing objects: 100% (3/3), done.
  14.  
  15. Writing objects: 100% (4/4), 866 bytes | 866.00 KiB/s, done.
  16.  
  17. Total 4 (delta 0), reused 0 (delta 0)
  18.  
  19. To github.com:Owen-ET/TestRepository.git
  20.  
  21. 4d3f7a6..9110914 master -> master

上面可参考文章:《mac下如何把项目提交、更新到gitHub上

返回到github上,如图:

六、删除github中某个文件夹           返回目录

只需要一下几步就可以完成删除

  1. # 删除文件夹
  2. git rm -r --cached python_stu/
  3.  
  4. # 提交,添加操作说明
  5. git commit -m '删除stu文件夹'
  6.  
  7. # 将本次更改更新到github项目上去
  8. git push -u origin master       

参考文章:《删除github中某个文件夹

汇总:

  1. GitHub上传项目
  2. 126,(66
  3.  
  4. cdgit文件夹下,把新建的项目复制到git
  5. 再查看状态:git status
  6.  
  7. #添加文件夹
  8. git add python_stu/
  9.  
  10. #提交文件夹,并注释
  11. git commit -m "上传py文件2018-09-19"
  12.  
  13. #继续查看状态,python_stu/文件夹已添加
  14. git status
  15.  
  16. test:Git zhan$ git pull #同步代码
  17.  
  18. test:Git zhan$ git push origin #把代码推到服务器上
  19.  
  20. ====================================
  21.  
  22. 删除github上的文件
  23.  
  24. # 删除target文件夹
  25. git rm -r --cached python_stu/
  26.  
  27. # 提交,添加操作说明
  28. git commit -m '删除stu文件夹'
  29.  
  30. # 将本次更改更新到github项目上去
  31. git push -u origin master               

七、附录:                  返回目录

github常见操作和常见错误及其解决办法

如何把本地文件上传到github上(MAC版)

mac下如何上传代码到github(亲测有效)

================扩展:==================================

.git目录看不到怎么办,参考:《Mac上如果看不到.git目录的解决方法

.git路径为就是自己初始化init创建git时的路径!

=======================================================







【Mac系统 + Git】之上传项目代码到github上以及删除某个文件夹的更多相关文章

  1. 使用Git上传项目代码到github

    github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了.   注册账户以及创建仓库 要想使用gi ...

  2. git上传项目代码到github

    参考: git学习——上传项目代码到github github上传时出现error: src refspec master does not match any解决办法 git 上传本地文件到gith ...

  3. 如何使用Git上传项目代码到github

    这是我第一次应用git,以下仅供git的初学者参考.     github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说 ...

  4. TortoiseGit上传项目代码到github方法(超简单)

    Github是咱广大开发者用的非常多的项目代码版本管理网站,项目托管可以是私人的(private)或者公开的(public),私人的收费,一个月7美金.咱这里就只说我们个人使用的,一般都是代码对外开放 ...

  5. Mac下,如何把项目托管到Github上(Github Desktop的使用)

    在上一篇中,详细讲解了使用X-code和终端配合上传代码的方法,这种方法比较传统,中间会有坑,英文看起来也费劲,不过Github官方提供了一个Mac版的客户端,如下图:

  6. 解决使用maven clean项目的时候报错,删除target文件夹失败

    背景:jdk1.8 + maven3.5.2 问题描述: 我在使用maven clean项目的时候,celan 失败,报错的原因是删除项目下的target文件夹下面的文件失败 解决方法: 打开任务管理 ...

  7. git将本地项目添加到github上

    git init git add . git commit -m '添加备注' git add remote origin originUrl git push -u origin master 注意 ...

  8. Mac系统Git生成ssh公钥

    Mac系统Git生成ssh公钥 在使用Git仓库进行代码管理时,新的电脑上往往需要生成ssh公钥进行匹配,Mac系统生成Git公钥过程如下: 1.检查本机是否已有公钥 在终端中输入如下命令: ? 1 ...

  9. 在Eclipse上使用egit插件通过ssh协议方式上传项目代码的具体步骤

    在Eclipse上使用egit插件通过ssh协议方式上传项目代码 前戏: 使用ssh方式可以不通过https协议,避免直接提供账号密码的方式上传项目到git在线服务器,如Bitbucket.GitHu ...

随机推荐

  1. POJ2955 Brackets(区间DP)

    给一个括号序列,求有几个括号是匹配的. dp[i][j]表示序列[i,j]的匹配数 dp[i][j]=dp[i+1][j-1]+2(括号i和括号j匹配) dp[i][j]=max(dp[i][k]+d ...

  2. 解魔方的机器人攻略17 – 魔方CFOP算法

    由 动力老男孩 发表于 2010/01/03 17:38:09 本来我想把这个攻略做成一个NXT开发的教程,把传感器,电机,发声等部分都介绍一遍.不过现在看来有些同学很心急,希望早点看到“核心代码”, ...

  3. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

  4. hdu2846 Repository

    //--------------------------------------------------------------- /*---字典树应用问题.考虑到要查询的次数在10^6,显然直接插入 ...

  5. 命令行下的“蒙面歌王”rundll32.exe

    在Windows系统中,为了节省内存和实现代码重用,微软在Windows操作系统中实现了一种共享函数库的方式.这就是DLL(Dynamic Link Library)文件,即动态链接库,这种库包含了可 ...

  6. mybatis 3简介

    http://www.mybatis.org/mybatis-3/zh/index.html

  7. JStorm文档

    Jstorm的性能测试 JStorm 大概是Apache Storm 4倍, Apache Flink 1.5 倍, Twitter Heron 2 ~ 10 倍 Jstorm是一个分布式实时计算引擎 ...

  8. linux下eclipse闪退和重装jdk的方法

    安装eclipse: (1)把eclipse-java-helios-SR2-linux-gtk.tar.gz解压到某个目录中,我解压到的 是/usr/eclipse,得到eclipse目录 (2)在 ...

  9. C#基于Socket的CS模式的完整例子

    基于Socket服务器端实现本例主要是建立多客户端与服务器之间的数据传输,首先设计服务器.打开VS2008,在D:\C#\ch17目录下建立名为SocketServer的Windows应用程序.打开工 ...

  10. 怪异恼人的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream问题的解决

    测试以前做的一个邮件发送类,出现以下问题: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/m ...