git与github浅记

这里对git与github的一些操作做一下记录

 

 


理论:

git是在本机运作的分布式版本控制系统,存在三大区域:

工作区域:
平时存放项目的地方。
暂存区域:
存放你的改动。
Git仓库(库:repository):
安全的存放你所有版本的位置。
Git库用来存放一个项目的不同版本

git的初始化:

安装好git后,打开cmd窗口,输入如下命令初始化git

git config --global user.name "用户名"
git config --global user.email "邮箱"

这里我不打算使用git bash,我希望直接在cmd窗口里操作git,于是我这里配置了环境变量:

E:\Git\Git\cmd

新建了路径到Git下的cmd文件夹


Git常用命令:

当我需要另一个项目git的话,则在项目路径下使用如下命令,对当前路径初始化一个git库:

git init

当我新建了文件,则使用如下命令将文件添加到暂存区域:

git add 文件名
git add --all

确认无误后,使用如下命令将暂存区域的文件提交到本地库中:

git commit -m "本次提交版本的备注"

随时可以使用如下命令查看状态(检查该版本库是否有文件未提交):

git status

用如下命令检查库里的文件

git log
git log --pretty=oneline   //一行简要显示

用如下命令查看历史提交

git reflog

比较文件

git diff 文件名    //查看修改文件
git diff 快照ID1 快照ID2    //比较两个快照
//-表示旧文件(即暂存区域的文件)
//+表示新文件(即工作区域的文件)
//JK一行一行浏览
//DU半页半页浏览
//FB一页一页浏览

用如下命令回滚版本

git reset --hard HEAD~   回滚到上一个版本
git reset --soft HEAD~   移动HEAD的指向到上一个快照
git reset --hard 版本号   回滚到该版本号对应的版本
git reset --hard HEAD^^   回滚到上上个版本
git reset --hard HEAD~100  回滚到100个版本之前

Git技巧:

  • 输入快照ID时,输入前几位即可
  • 出现中文乱码,输入:set LESSCHARSET=utf-8

 

 


Git分支:

创建分支命令:

git branch 分支名

展示分支:

git log --decorate  //普通展示
git log --decorate --oneline --graph --all  //高级展示

切换分支:

git checkout 分支名

合并分支:

git merge 分支名

注意合并分支要尽量避免同一文件的内容冲突

删除分支:

git branch -d 分支名

Github:

零碎概念:

Repository:简称Repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。
Issues:可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出Issue,等我们把Issues解决之后,就可以把这些Issues关闭;反之,我们也可以给他人提出Issue。
Star:可以理解为“点赞”,当我们感觉某一个项目做的比较好之后,就可以为这个项目点赞,而且我们点赞过的项目,都会保存到我们的Star之中,方便我们随时查看。在 GitHub 之中,如果一个项目的点星数能够超百,那么说明这个项目已经很不错了。
Fork:可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以Fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。
Pull Request:可以理解为“提交请求”,此功能是建立在Fork之上的,如果我们Fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个Pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。
Merge:可以理解为“合并”,如果别人Fork了我们的项目,对其进行了修改,并且提出了Pull请求,这时我们就可以对这个Pull请求进行审核。如果这个Pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。
Watch:可以理解为“观察”,如果我们Watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。
Gist:如果我们没有项目可以开源或者只是单纯的想分享一些代码片段的话,我们就可以选择Gist。不过说心里话,如果不翻墙的话,Gist并不好用。

绑定Github:

首先本机Git要与Github做一个绑定(本地Git仓库和GitHub仓库之间的传输是通过SSH加密传输的,Github需要知道你的公钥,从而确定是不是你在推送)

在git bash中输入以下命令,从而生成公钥和私钥

ssh-keygen -t rsa -C "123@gmail.com"  //123 是注册GitHub的邮箱

在提示目录中找到id_rsa(私钥)和id_rsa.pub(公钥)两个文件(即SSH Key的秘钥对)

回到GitHub,Account settings⇒SSH Keys⇒Add SSH Key,填上Title,在Key文本框里粘贴公钥文件里的全部内容,然后add key即可。

操作Github:

关联远程仓库:

git remote add 仓库名 仓库url

克隆某个项目库

git clone 仓库url

用远程仓库同步本地仓库

git pull 仓库名 master

用本地仓库同步远程仓库

git push 仓库名 master

一般强调先pull过来再push

 

 


这篇文章只是对git和github做一些简单记录,以后我也会不断更新内容的~

 

 

 

 

 

 

商业转载 请联系作者获得授权,非商业转载 请标明出处,谢谢

发表评论