对于代码的管理我们一般使用GitHub+Git或SVN+Redmine,下面主要接介绍一下GitHub和Git的常用操作:

1、GitHub 创建开源项目
  先登录其官网注册一个免费使用的账号,依次填写用户名, 有效邮箱地址以及登录密码, 点击下方的“Create an account”就会自动创建一个用户,进入选择服务的页面,这里我们选择免费使用的条目。选择了免费服务以后就要公开整个项目源码, 如果不想公开源码又要使用 Git 托管服务, 就需要支付一定的费用给 GitHub。

2、验证邮箱地址

登陆邮箱利用 GitHub 给的链接激活用户之前注册的账号。 在点击激活链接以后,会弹出 GitHub 设置邮箱的页面,这时候不需要额外设置,直接点击右上角的加号(+)按钮,然后选择“New Repository”。

然后在新建 repository 的页面中,依次填入 repository 名称以及对项目的描述和选择项目是否公开,这里要选择公开,还可以选择项目遵循的许可协议,我们选择的是 GPLv3(可以不选),最后点击“Create repository”完成开源项目的创建.

创建完毕以后,里面只有许可协议文件和 README 文件的空项目(空版本库),还只是一些初始化的文件,需要用户从本地版本库同步到该远程的 GitHub 版本库。

3、上传代码到 GitHub

gaohui@ubuntu:~$ git config --global user.name "cnhui"
gaohui@ubuntu:~$ git config --global user.email "1252258276@qq.com"

然后使用如下命令生成 SSH Key:

gaohui@ubuntu:~/easypr$ ssh-keygen -t rsa -C "1252258276@qq.com"

一开始让你确认是否将 SSH Key 文件存放到~/.ssh 目录,如果已经存在该目录,且该目录已经有了 SSH Key, 会询问用户是否覆盖。 接下来让你输入密码, 注意输入密码的时候没有回显, 接着是再次输入密码, 两次密码都是注册 GitHub 时候的登陆密码, 如果一切正常, 然后在~/.ssh 目录会生成 id_rsa 和 id_rsa.pub 两个文件, 它们是 SSH Key 的秘钥对。 id_rsa是私钥,不能泄露出去; id_rsa.pub 是公钥,可以放心地告诉任何人!

用文本编辑器打开 id_rsa.pub 文件, 将里面的内容全部复制(注意不要修改任何内容, 包括空格和空行和制表符, 什么都不要改), 这里笔者使用 gedit 打开,使用 ctr+ A 即可全选, 使用 ctr +C 即可复制。找到设置 SSH Key 的入口,即在右上角点击下拉箭头

gaohui@ubuntu:~/easypr$ gedit ~/.ssh/id_rsa.pub

然后点击 seetings,在新页面左侧选择 SSH Keys,在右侧点击“New SSH key”,在下方输入 Title 以及 Key,Title 随便填写,Key 选项的输入框就粘贴刚刚从 id_rsa.pub 复制的内容。如图 4-9 所示,然后单击“Add SSH key”按钮即可添加一个 public key。

设置完 SSH key 以后, 可用如下命令检测公钥、 秘钥以及上述步骤的设置是否正确:

如果提示用户如下正确信息:
gaohui@ubuntu:~/easypr$ ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
Hi cnhui! You've successfully authenticated, but GitHub does not provide shell access.使用 git remote 命令设置项目在 GitHub 的 URL:
gaohui@ubuntu:~/easypr$ git remote add origin git@github.com:cnhui/EasyPR-Chinese-license-plate-recognition-system.git
fatal: Not a git repository (or any of the parent directories): .gitgaohui@ubuntu:~/easypr$ git init
Initialized empty Git repository in /home/gaohui/easypr/.git/
gaohui@ubuntu:~/easypr$ git remote add origin git@github.com:cnhui/EasyPR-Chinese-license-plate-recognition-system.git
其中 origin 表示的是远程代码库的仓库名字, 可以自己定义,同时这个命令将本地代码库和 GitHub 远程代码库关联起来。还需要使用如下命令使得远程代码库的 README 等文件和本地代码库一致,否则不能执行 git push。gaohui@ubuntu:~/easypr$ git pull --rebase origin master
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 12 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (12/12), done.
From github.com:cnhui/EasyPR-Chinese-license-plate-recognition-system* branch            master     -> FETCH_HEAD* [new branch]      master     -> origin/mastergaohui@ubuntu:~/easypr$ git push -u origin master
Branch master set up to track remote branch master from origin.
Everything up-to-dategaohui@ubuntu:~/easypr$ git add ARM\ Linux下EasyPR中文车牌识别系统开发.doc
gaohui@ubuntu:~/easypr$ git commit -m 'cnhui'
[master f55a27c] cnhui1 file changed, 0 insertions(+), 0 deletions(-)create mode 100755 "ARM Linux\344\270\213EasyPR\344\270\255\346\226\207\350\275\246\347\211\214\350\257\206\345\210\253\347\263\273\347\273\237\345\274\200\345\217\221.doc"使用下述命令将本地版本库主分支(master) 中的文件上传到 GitHub,其中-u 选项是第一次 push 的时候使用,将本地和远程的 master 分支关联起来,并同步文件。
其中 master 表示的是远程版本库(origin)的主分支,如果上传成功会有如下提示信息:
gaohui@ubuntu:~/easypr$ git push -u origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects:  66% (2/3)
Writing objects: 100% (3/3), 1.25 MiB | 1.71 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:cnhui/EasyPR-Chinese-license-plate-recognition-system.gitc130c31..f55a27c  master -> master
Branch master set up to track remote branch master from origin.

4、补充

如果从 GitHub 下载源代码:
git clone git@github.com:cnhui/EasyPR-Chinese-license-plate-recognition-system.git
如果只是想获取某一个分支的最新内容,只需使用如下命令,表示或其远程版本库 origin 的 master 分支的最新内容。
git pull origin master如果git在本地创建了一个仓库并添加了文件,现在这个本地仓库不想要了。可以先清除本地文件夹下的git文件,不会删除仓库里面的文件,然后在重新初始化新建的git仓库。
find . -name ".git" | xargs rm -Rf
接着add,commit等操作即可删除github上文件
sudo git rm read.txt
git push origin master恢复误删出的git上文件
git log
sudo git reset --hard "4acb59aa4f8474a2afcdde237827796b4c19f6f9"恢复github上的误删的文件:
sudo git add *
sudo git commit -m "linux pcie driver run"
git push origin master
git push -f origin master
(git push origin master --force 》 ! [rejected] master -> master (non-fast-forward))

Git还有比较常用的用法和技巧:分支管理和搭建Git服务器,推荐廖雪峰老师的博客:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git和Github代码管理实践相关推荐

  1. 简单使用Git和Github来管理自己的代码和读书笔记

    简单使用Git和Github来管理自己的代码和读书笔记 以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读 ...

  2. 使用Git和Github来管理自己的代码和笔记

    使用Git和Github来管理自己的代码和笔记 一.Github注册 1.先注册github.com的账号,官方网站: https://github.com/ 2.登录 3.创建仓库,仓库分公开的和私 ...

  3. android git项目管理,Android Studio中如何使用Git和Github来管理项目

    Android Studio中如何使用Git和Github来管理项目 原创 http://blog.csdn.net/wei18359100306/article/details/45645145 标 ...

  4. 结对编程总结+git使用与GitHub代码管理——by林玉俊唐宇涵

    一.分析需求 在拿到结对编程项目需求文档后,我和队友第一件事就是讨论需求,分析项目给出的需求以及实现的一些细节.比如,登录界面的设置(注册.重置.登录按钮),注册界面的输入框设置(手机号.验证码.密码 ...

  5. VScode github配置及github代码管理

    今天记录一下我配置VScode中用github来管理自己代码的经验,供有需要的人参考 1.下载git客户端(vscode依赖你本地电脑安装git的能力来管理代码) 地址:https://git-scm ...

  6. 【个人使用篇】github代码管理

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 (1)第一步[下载.新建代码]:clone拉取下载项目/新建自己的项 ...

  7. Linux 配置git同步GitHub代码

    将ssh key加入GitHub: https://www.cnblogs.com/Fight-go/p/15851321.html 与chatgpt聊,发现: 我本来有一个在Windows下的文件夹 ...

  8. 超详细git教程 GitHub创建管理仓库教程

    一:Git是什么? git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  9. github代码管理总结

    一.新建远程仓库 我们在远程新建仓库时,会自动提示两种方式. 设置全局 git config --global user.name "yourname" git config -- ...

最新文章

  1. JavaScript初学者编程题(23)
  2. 关于Exchange Server 2010中OWA页面无法打开问题处理方法
  3. Python进阶-----类、对象的相关知识
  4. 在Vim中有没有一种方法可以在不将文本放入寄存器的情况下删除?
  5. vuecli 实战商城后台管理系统_前台商城系统及后台管理系统
  6. 在国外千万不要以为别人都听不懂中文
  7. 应用重连时间_App Store 无法正常下载应用,一直转圈的处理办法
  8. C语言课后习题(53)
  9. android从本地服务器新浪云,GitHub - SinaCloudStorage/SinaStorage-SDK-Android: Android SDK For 新浪云存储...
  10. java线程 锁_Java多线程(二) 多线程的锁机制
  11. 瑞友企业私有云显示连接负载服务器错误,荣誉资质 | 瑞友天翼-应用虚拟化|远程接入|桌面虚拟化|国内虚拟化整体解决方案领导者...
  12. Spring Data R2DBC 响应式数据库操作使用
  13. Linux 使用xmodmap禁用键盘按键(禁用Linux快捷键)
  14. github清华大学计算机系课程攻略,GitHub 项目推荐|清华大学计算机系课程相关资源集合|内容丰富...
  15. 奇异值分解(SVD)线性变换和几何意义
  16. 普通云硬盘,高性能云硬盘和SSD云硬盘三者之间有什么区别?
  17. SAP ABAP loop at Assigning
  18. 怎么通过Unity和谷歌纸盒做一个VR游戏?(译)
  19. Tycho build 3: 创建一个全局构建项目
  20. 原码、反码、补码和真值

热门文章

  1. 第十四章_超参数调整
  2. [机器学习]关联挖掘介绍
  3. 验证码——ImageIO.write的坑
  4. 约束布局管理器 CAConstraintLayoutManager 以及其不起作用
  5. Cracking the Coding Interview Q1.2
  6. java访问权限的控制
  7. 如何选择学习主流程序语言(一)
  8. J2EE的13种核心技术(一)
  9. RocketMQ-项目集成
  10. JavaScript 键盘事件处理