Git学习

Git的学习


git是一种分布式版本控制系统,从这个称呼就不难看出它的两个特点:版本控制, 分布式管理:

版本控制

$ git init     #初始化当前目录为git目录

在这个目录下会自动创建一个.git文件夹,在此有几个重要的概念:
.git目录为版本库,版本库中会维护着一个暂存区(stage)和各个工作分支(branch),在init目录下不包括.git目录为工作区(working directory)。
git的文件管理方法就是基于这三者来的:

$ git add filename #添加代码到stage中,注意多次提交同一个文件,后者会覆盖掉前者
$ git commit -m "一些说明"     #将stage所有内容中推送到当前branch

你的所有推送到branch都会被记录下来

$ git log      #查看当前版本及之前的commit记录
$ git reflog   #查看你执行的所有commit

有了stage和branch,你可以有针对性地管理你的代码进度,你可以随时查看working directory,stage,branch三者内容的差异:

$ git diff [filename]  #working directory与stage的区别
$ git checkout [-- filename] #撤销working directory相对于stage的修改
$ git diff HEAD [-- filename]  #working directory与branch的区别
$ git reset HEAD [filename]    #撤销working directory相对于branch的修改
$ git diff --cached    #stage与branch的区别

注:HEAD是指向当前branch版本的指针,master是指向要push到远端的branch的指针(默认初始化建立的分支)

一般工作都不是在主分支(master branch)上工作的,而是新建一个分区,再合并:

$ git checkout -b branchname   #创建新分区,并切换到新分区
<=>
$ git branch branchname    #创建
$ git checkout branchname  #切换
$ git merge branchname     #合并分区(与master分区)
$ git branch -d branchname     #删除分区

不仅可以在提交到stage后反悔,在commit之后也可以实现版本的回退

$ git reset -- hard commit_id  #可由reflog获得commit_id,或者HEAD^,表示上一个版本,HEAD^^表示上上个,HEAD~num表示上num个

分布式管理

$ git remote add origin git@github.com:username/repositoryname #添加远程库
$ git push origin branchname   #添加当前branch到远程库master中,可能会提示要先设置全局属性为simple
$ git push origin :branchname  #删除远程分支branchname
$ git tag [tagname] [-m "some mark"] #创建标签
$ git push origin --tags   #将tag push到github上

状态显示:

$ git tag  #显示所有标签
$ git status   #显示当前git状态
$ git branch [-a]  #显示当前所有分支,-a表示包括远程库
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值