GitHub学习笔记(更新中)

工作区,版本库解析

参考链接:http://blog.csdn.net/felix_f/article/details/8777463

左边为工作区,即是我们平时看到的目录,右图为版本库,其中版本库中左侧的index为暂存区(stage, index),右侧为分支(图中为master)

  • 我们修改工作区中的文件,通过add可以将修改到暂存区中;
  • 当修改了工作区中的文件而没有add,通过checkout --<file>可以用暂存区中的文件替换工作区中的文件
  • 而当我们已经add的时候,我们可以通过reset HEAD将master分支中的文件提交到文件恢复到暂存区当中
  • 通过commit可以将add的内容添加到master分支中
  • 通过rm --cached来删除暂存区中的某个文件
  • 通过checkout HEAD <file>会用master分支中全部或者部分文件替换暂存区和工作区中的文件

 常用命令

git clone clone一个工程到本地

  • git clone <https> 

git status 查看git工程当前的状态

从下图可以看出git status可以显示的结果可以分成三种情况:

  • 已经commit的但是没有push的(版本库中master分支和网上的工程区别),即是下图中的:Your branch is ahead of 'origin/master' by 1 commit.
  • 已经add的但是没有commit的(版本库中的master分支和暂存区的去呗),即是下图中的绿色部分
  • 工作区中修改的但是没有add的(工作区和暂存区的区别),即下图中的红色部分

git add <path>将工作区中修改提交到暂存区

  • -u  把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。
  • -A  [<path>]表示把<path>中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。

git checkout 将暂存区中的文件替换到工作区中

  • git checkout branch 检出branch分支。要完成图中的三个步骤,更新HEAD以指向branch分支,以及用branch 指向的树更新暂存区和工作区。
  • git checkout/git checkout HEAD 汇总显示工作区、暂存区与HEAD的差异。
  • git checkout -- filename 用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。
  • git checkout branch -- filename 维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相 应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。
  • git checkout -- . 或写作 git checkout .注意git checkout 命令后的参数为一个点(“.”)。这条命令最危险!会取消所有本地的 修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件

 git commit 将暂存区中的内容提交到分支中

  •  git commit  -m “messages”  参数后面跟字符串,告诉Git本次修改的说明信息。总是应该在每次提交的时候注明说明信息。

 git push 将版本库中的内容push到远程分支上

 git pull  将远程的分支pull到本地

 

gitignore

语法

以斜杠“/”开头表示目录;

以星号“*”通配多个字符;

以问号“?”通配单个字符

以方括号“[]”包含单个字符的匹配列表;

以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

以#表示注释

举例

保留工程中所有的.v文件,忽略其它所有的文件

**/*表示忽略工程中的所有文件

!**/*.v表示跟踪工程中的所有*.v文件

其中**表示目录递归

#save all verilog file(*.v)    
**/*    
!**/*.v

 

分支管理

当我们在程序开发过程中由于需求需要在目前的基础上进行开发一个新的功能,或者调试bug,或者分组开发的时候,而如果我们直接在这个基础上开发,那么就会影响到其他人的开发,这样我们就可以创建一个分支来进行开发,而影响主分支master上面的开发,而当我们开发并且调试完毕之后在merge到主分支上啊就可以。

 

 本地分支

github中的分支管理采用的是一个HEAD的指针,其指向的是我们本地分支中的当前分支,其最初是指向master这个主分支的。而我们的提交(commit)就是在HEAD指向的这个分支下进行的提交。

当我们在github上面创建了一个 repository之后,然后采用git clone命令克隆到本地,git其默认创建了一个master的分支。

git branch 查看当前的分支。其中前面带星号的就是我们当前所在的分支。

 git branch <branch_name>  创建一个名叫branch_name的分支,例如我们创建了一个dev的分支。

通过上图可以看到,创建了一个dev的分支,其指向了最新的commit3,但是此时HEAD指针其实还没有变,我们需要通过

git checkout <branch_name> 切换当当前的分支

 

此时我们就在dev分支下面进行开发了。  我们在dev下新建一个test文件,并且修改里面的内容通过add和commit命令提交。然后切换到master分支,发现master分支下并没有test这个文件

git merge <branch_name> 将某一个分支merge到当前的分支

我们可以git merge dev将dev分支merge到当前的分支上面,这样我们在master分支下就可以看到test文件了

git branch -d <branch_name>  用来删除分支

 

远程分支同步

前面所说的全部都是在本地进行开发,远程的仓库没有变化。当我们创建一个repository的时候,github会在远程建立一个master分支,并且将其和本地的master分支对应起来,我们可以通过

git branch -a来进行查看

可以看到远程只有一个master的分支,其HEAD指针指向了master分支,而本地有两个分支。此时如果我们通过git push origin dev就可以将其push到远程,并且在远程建立一个dev的分支,并且将该dev分支与我们本地的dev分支相对应。

 

而一种情况是我们在远程有好多的分支,而git clone默认的是克隆的是master分支下面的文件,其他分支不会被克隆,我们我们可以采用

git clone -b <branch_name> <url>的方式仅克隆某一个分支下面的文件。

或者我们克隆了master分支之后,我们可以在本地通过

git branch <branch_name> <remote_branch_name>的方式创建一个分支,并且将其和远程的分支进行同步。

 

总结

git branch

  • git branch/git branch -v查看本地分支、
  • git branch <branch_name> 创建分支
  • git branch -a/-all 查看所有分支,包括远程分支
  • git branch -d <branch_name> 删除分支

git checkout <branch_name> 切换当当前的分支

git merge <branch_name> 将某一个分支merge到当前的分支

git clone -b <branch_name> <url>的方式仅克隆某一个分支下面的文件。

git branch <branch_name> <remote_branch_name>的方式创建一个分支,并且将其和远程的分支进行同步。

 

转载于:https://www.cnblogs.com/jackwang822/p/5468121.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设方案旨在通过融合先进技术,如物联网、大数据、人工智能等,实现校园的智能化管理与服务。政策的推动和技术的成熟为智慧校园的发展提供了基础。该方案强调了数据的重要性,提出通过数据的整合、开放和共享,构建产学研资用联动的服务体系,以促进校园的精细化治理。 智慧校园的核心建设任务包括数据标准体系和应用标准体系的建设,以及信息化安全与等级保护的实施。方案提出了一站式服务大厅和移动校园的概念,通过整合校内外资源,实现资源共享平台和产教融合就业平台的建设。此外,校园大脑的构建是实现智慧校园的关键,它涉及到数据心化、数据资产化和数据业务化,以数据驱动业务自动化和智能化。 技术应用方面,方案提出了物联网平台、5G网络、人工智能平台等新技术的融合应用,以打造多场景融合的智慧校园大脑。这包括智慧教室、智慧实验室、智慧图书馆、智慧党建等多领域的智能化应用,旨在提升教学、科研、管理和服务的效率和质量。 在实施层面,智慧校园建设需要统筹规划和分步实施,确保项目的可行性和有效性。方案提出了主题梳理、场景梳理和数据梳理的方法,以及现有技术支持和项目分级的考虑,以指导智慧校园的建设。 最后,智慧校园建设的成功依赖于开放、协同和融合的组织建设。通过战略咨询、分步实施、生态建设和短板补充,可以构建符合学校特色的生态链,实现智慧校园的长远发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值