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 |