首页 存档 技术 查看内容

【成都-第七十一期】如何用git把代码上传到github

2018-3-30 13:00 |来自: 互联网 296 0

摘要: 1.背景介绍 ①什么是git? git是linux之父为了更好的管理linux内核开发而创立的分布式版本控制/软件配置管理软件 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地 ...

1.背景介绍

①什么是git?

git是linux之父为了更好的管理linux内核开发而创立的分布式版本控制/软件配置管理软件

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

②什么是github?

GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。

GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。


2.知识剖析

如何下载安装git?

① windows平台下,https://git-for-windows.github.io/

② 上面的链接速度很慢的话,移步国内镜像https://pan.baidu.com/s/1kU5OCOB#list/path=/pub/git

③ 安装完成后右键点击桌面空白处,能找到gitbash即安装成功

④ 在命令行输入以下代码:

$ git config --global user.name "Your Name"/就是你的github账号名称

$ git config --global user.email "[email protected]"/就是你注册github账号的邮箱


3.常见问题

3.1创建版本库

①创建空目录

$ mkdir learngit/mkdir就是make directory制造路径

$ cd learngit/cd 就是change directory改变路径,指向learngit

$ pwd/pwd就是print working directory打印工作路径,会显示现在所处的位置

②将目录变为git可管理的仓库

$ git init/初始化仓库,在文件内部生成.git文件;文件夹的话直接右键选git base here

③将文件添加到版本库

比如创建一个readme.txt,放到learngit目录下

用git add 添加文件:git add readme.txt

注意:可多次add文件,一次commit,一次上传整个文件夹git add -A

④用git commit提交文件到仓库

git commit -m "我是第一次添加的内容"


4.解决方案

4.1查看工作区状态

① 使用git status

② 使用git diff

4.2版本回退

多次add commit任务后,自己混乱了,想回到之前的某个版本,怎么办?比如:

第一次修改:我是版本一;

第二次修改:我是版本二;

第三次修改:我是版本三

①可通过git log查看历史记录,或者git log --pretty=oneline

②可通过git reset --hard HEAD~1/2/3回到前面1,2,3个版本(单独用)

③可通过版本号git reset --hard 版本号回到前面

④可通过git reflog查看历史命令

4.3 删除文件

通常我们把文件直接右键删除了,导致工作区和版本库不一致,如何知道删除了哪些,怎么把已删除的文件恢复?

①使用git status命令

②确实删除文件:如下

$ git rm test.txt/rm就是remove,这些命令一般是英文单词的简写

$ git commit -m "remove test.txt"

[master d17efd8] remove test.txt

1 file changed, 1 deletion(-)

delete mode 100644 test.txt

③ 删错了,如下:

git checkout -- test.txt


5.1 设置远程仓库

① 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件, 如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:SSH Key一般都是[email protected]:"你的github名字"/文件名字.git

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

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

5.2 添加远程仓库

① 登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库

② 在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库

③ 我们根据GitHub的提示,在本地的learngit仓库下运行命令在github相应文件下点击"clone or downmload"下面会有SSH Key

git remote add origin [email protected]:xxxxxxx

上传之前最好先pull下保证把缓存区的文件传到工作区

$ git pull -rebase origin master

④ 把本地库的所有内容推送到远程库上(-u仅以一次需要,后面不用)

$ git push -u origin master


6.扩展思考

① 什么是分支管理,有什么作用?

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

② 常见的分支管理有关命令

查看分支:git branch

创建分支:git branch (分支名)

切换分支:git checkout (分支名)

创建 切换分支:git checkout -b (分支名)

合并某分支到当前分支:git merge (分支名)

删除分支:git branch -d (分支名)


7.参考文献

参考1:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git教程

参考2:

https://zhuanlan.zhihu.com/p/21377146

Git是什么

参考3:

http://rogerdudler.github.io/git-guide/index.zh.html Git简明指南

8 更多讨论

① git说到底只是为了更好使用github的工具,如何更好的利用github?

② 关注你想学习的各种有趣且的东西,举例分享一个git存储库可视化程序

https://github.com/pcottle/learnGitBranching

pcottle / learnGitBranching:一个交互式的git可视化来挑战和教育!







PPT链接:

https://ptteng.github.io/PPT/PPT/CSS-01-uploadGithub.html