推荐转到廖雪峰网站学习:
廖雪峰git
git是程序员开发的必备技能,本篇博客不介绍git和github的相关知识背景,从实战出发,图文注释,从0到1,掌握最基本、最主要的的git技能
本篇以Ubuntu 18.04为操作系统,而windows 10下因为安装了git bash,因此同样适用
提示:以下是本篇文章正文内容,下面案例可供参考
在进行git操作前,做的一些前期工作,假设读者已经安装了git,并注册了GitHub账号。
1、创建文件夹
mkdir git_test
2、进入该文件夹
cd git_test
3、初始化当前文件夹为git仓库
git init
4、使用vim写一个文件hello.txt
在hello.txt中写入内容 this is a git test
5、写入本机的配置文件,本地的标识user email,红色框填自己的个人信息
查看git的配置信息,上面的 --global意味着添加的user信息是全局的,在其他所有的git仓库都可以使用,不用每一个git仓库都执行,一次就够。
git config --list
1、登录GitHub个人账户,点击 Your repositories 如下:
2、创建一个GitHub仓库
添加一些必要的信息,其他不用管,完成创建。
3、配置密钥,是的本地的仓库和GitHub仓库相连,使用默认验证方式实现信息传输。
输入指令,在本机中生成密钥
ssh-keygen -t rsa -C "your-email.com"
效果如下图
密钥信息都放置在.ssh目录下,我们去找到。
在用户根目录下有一个.ssh目录,进入查看下面的文件,一个公钥,一个私钥。
查看公钥,私钥不用管。
cat id_rsa.pub
复制公钥内容,添加到GitHub上。
点击 New SSH key
随便起一个名字,填入我们的公钥,完成即可。
以下是git官网给出的图示
1、上行操作本地仓库->GitHub仓库
添加本地文件hello.txt到staging area
git add [file_name]
我们可以随时查看当前状态,一个良好的操作习惯是每次git操作都使用以下指令查看操作状态。
git status
可以看到上面的提示,可以使用下面指令撤销add操作,使用通配符 . 可以选中所有文件
git rm --cached <file>
add操作是添加到了cache中,然后commit提交到本地仓库
提交文件
git commit -m "fill some message you update this time"
-m后面填入一些本次添加的一些相关信息。
此时我们本地仓库添加完毕,如果我们现在突然想改一点内容。
直接更改相关文件内容
使用vim打开hello.txt添加一行内容modify
查看当前状态如下,git给出我们提示:
下面提交本地仓库信息到GitHub上。
git branch # 列出本地分支
git branch -a # 列出本地和远端分支
git branch -r # 列出远端分支
默认情况下,是master分支,如下图所示
我们想要把当前分支推送到GitHub上的分支,需要本地仓库和GitHub仓库建立连接。
git remote add [remote_name] [url]
GitHub上查看url,因为我们配置了ssh,因此使用ssh更方便,可以不用手动验证身份,当然你也可以使用https,需要手动验证一下。
添加一个远端仓库叫remote_git,我没有使用origin,你读其他所有的博客基本都是origin,这里偏偏不起这个名字,是为了让读者更好理解,注意这里remote_git就相当于是一个变量名,用它可以代替远端仓库的url。
查看与本地仓库连接的GitHub仓库信息
git remote
查看远端信息 -v 冗余的,一个上行,一个下行。
git remote -v
git push [remote/dst] [branch/src]
去GitHub查看一下,分支名是master(这个分支名字和本地仓库的名字保持一致),已经上传成功。
本地分支是什么,传送到的远端就是什么分支,远端没有该分支的话创建一个。
新建分支
git branch [branch_name]
可以看到master是绿色的,并且前面有一个*号,表面当前分支是master
切换到branch_1
git checkout [branch_name]
新建一个world.txt,使用branch_1上传如下图,如果远端仓库没有branch_1,那么会创建一个。
去GitHub查看
master分支并没有受到影响
git push [dst] [local_branch]
git push 相关内容
2、下行操作GitHub仓库->本地仓库
git clone [url]
如果不写本地branch,那么默认为当前分支
git pull [remote_url] [remote_branch]:[local_branch]
git fetch [remote_url] [remote_branch]:[local_branch]
git merge [remote_branch]
git clone 和 git pull的区别:
git clone: 从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
git pull 从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
git clone and git pull
以上就是今天要讲的内容,本文仅仅简单介绍了Git和GitHub的简单用法,仅仅是走了个过程,当然Git的操作远不止于这些。本文的目的就是让读者领会一下Git的工作流程,具体遇到了操作上某些问题,可以有针对性地搜索相关内容。谢谢你的阅读!