Git Command Introduction

Small Talk

Foreword

大家好,我是Patrick!我决定从现在开始,每天将自己学习的东西发布为博客,不仅是为了未来自己回顾,也为了构建一个OpenSource的Community出一份自己的力量。

Statement of Myself

首先,我个人属于偏学术派,现目前工业上的知识稍微匮乏一些,自己的理论知识比较好,学习能力也很强,需要将自己的knowledge put into use。 我会将自己的一些学术上的知识,以及工业上学习的新skill sets一起发布到我的专栏当中,我会很好的去分类,所以大家fell free to get what you want from my blog,你可以评论,我会很认真地阅读您所提的每一个意见。如果我的文字有任何问题的话,你们直接提出来即可,Don’t mind it,虚心受教。

Best Wishes

希望我们可以一起成为更好的Engineer!

TimeLine

今天是work的第二天,这两天主要是新人培训,learn some new knowledge。昨天和今天主要是安装一些软件和命令行的内容,所以我今天就将昨天和今天学习的内容post at this blog。

Git Knowledge Accumulation

Git Internal Structure

待补充

Why we need Index Stage

根据刚刚所讲解的结构,有许多人可能会想到,感觉似乎我们只需要WorkPlace和Repository两部分就行了。设想一个场景,假设现在Git只有WorkPlace和Repository两部分,我们目前只有进行commit,如果你对所以文件全部进行了修改满意,且这个过程没有任何错误,那么你直接commit到Repository是完全没有问题的(个人观点),但是按照现在的commit规则,假设你一旦提交,类似于原子性这种概念就参与进来了,要么全部提交,要么全部撤销。
如果你有一些文件出现错误,你想要修改,你只有一个办法,那就是知道这个文件的错误,修改过来重新提交。但是你也不知道你该修改哪些可以回到原来的样子。如果你有很好的记性,It works.
如果你不知道该修改哪里,那么你只有全部撤销,小型工程还好,大型工程不堪设想。
回到现实,所以现在我们就发明一个Index Stage来解决这个问题。假设你现在将你已经修改好的文件添加到Index Stage,作为预存一下,现在你需要接着对这个文件进行修改,但是不幸地是,你弄错了,恰好你也不知道错在哪里,那么我可以直接使用restore命令直接将内容恢复到Index Stage里面的版本(暂存库版本),那么很显然,我们任何时候发生这种错误都可以将损失减到最小。
这就是我对为什么要有Index Stage的理解。

Git command

Local Repository

  1. 仓库初始化
    将本地的文件夹初始化为一个Repository
init <文件名>
  1. 全局配置
    将你的所有仓库加入你的标识(全球化),在你上传到云仓库时,能让别人知道这是你。
git config --global user.name "Username" 
git config --global user.email "Email"
  1. 局部配置
none
  1. Workplace to Index stage
git add .          //将所有改动add
git add <FileName> //将特定文件add
git all            //将所有都add
  1. Index stage to Local Repository
git commit -m "注释"
  1. 查看当前状态
git status
  1. 查看提交的日志
git log
  1. 查看Reference Log
git reflog			\\回退到特定的版本号,常常与命令git reset --hard 版本号结合使用,返回到错误回退的版本
  1. 查看某个文件在WorkPlace与Index Stage之间的不同,即查看修改了该文件的什么内容
git diff <FileName>
  1. 提交版本回退
git reset --hard HEAD^     \\回退到上一个commit的版本
git reset --hard HEAD^^    \\回退到上两个commit的版本
git reset --hard HEAD~n    \\回退到前n个版本
git reset --hard 版本号     \\回退到特定的版本号,常常与命令git reflog结合使用,返回到错误回退的版本
  1. 将某个已经在WorkPlace发生更改的文件,回退到其Index Stage内的版本
git restore -- <FileName>
  1. 分支相关的命令
git branch				\\查看创建了哪些Branch
git branch BranchName 	 \\创建名为BranchName的分支
git branch -d BranchName  \\删除名为BranchName的分支
git branch -D BranchName   \\(强制)删除名为BranchName的分支
git checkout BranchName	    \\将当前分支切换为名为BranchName的分支
git checkout -b BranchName	 \\创建名为BranchName的分支,并切换到该分支
git merge BranchName		  \\将当前分支与名为BranchName的分支合并
  1. 待补充

Remote Repository

  1. 让Remote Repository与自定义的远程仓库别名绑定
git remote add <RemoteRepositoryAlias> <HTTPS/SSH>	\\将current Repository与Remote Repository绑定,并类似建立于TCP这种的网络连接,而是告诉你的Repository,如果我到时候要与Remote Repository进行实际的联系的时候,我用<Name>你就知道是那个Remote Repository
  1. 让Remote Repository与自定义的远程仓库别名取消绑定
git remote rm <RemoteRepositoryAlias>
  1. 从远程仓库拷贝到本地
git clone <HTTPS/SSH>
  1. 将Current Local Repository的Branch推送到Remote Repository
    这部分需要验证
git push RemoteRepositoryAlias LocalBranchName:RemoteBranchName //全部进行指明,包括推送到的仓库,本地分支名,远程仓库分支名。
git push RemoteRepositoryAlias LocalBranchName	//Remote Repository Branch默认为master
git push RemoteRepositoryAlias	//Remote Repository Branch默认为master;Local Repository Branch默认为master
git push // Remote Repository Alias只有一个时,默认为之前设定;Remote Repository Branch默认为master;Local Repository Branch默认为master(如果有多个呢?指明的是哪个?)
  1. 将Local Branch更新的内容推送到Remote Branch
git push 
  1. 将Remote Repository更新的内容同步到Local Repository
git pull <LocalRepositoryAlias> <Local Branch>

Linux Command

Linux的一些命令在其中也能够使用,例如:cd, ls, pwd, rm, rmdir, mkdir等。目前我就用到这一些,你可以慢慢去探索还有哪些可以用,You’d be suprised!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值