Git和Github代码管理实践

    对于代码的管理我们一般使用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): .git

gaohui@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/master

gaohui@ubuntu:~/easypr$ git push -u origin master
Branch master set up to track remote branch master from origin.
Everything up-to-date

gaohui@ubuntu:~/easypr$ git add ARM\ Linux下EasyPR中文车牌识别系统开发.doc 
gaohui@ubuntu:~/easypr$ git commit -m 'cnhui'
[master f55a27c] cnhui
 1 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.git
   c130c31..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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值