内容简介:前段时间参加了刚好最近也打算开始好好整整建立初始版本库有两种方法:从头开始创建或者克隆一个已有的版本库,下面是从头创建,执行后会有个.git隐藏文件夹
前段时间参加了 生物信息学创新协作小组 Openbiox 中的 XenaShiny 开发小组( 主要根据Xena数据库的API,以shiny app形式展示,提供数据下载及相关分析等功能,已打包成R包可供下载安装 ),第一次参与协作开发任务,才发现自己原来所掌握的Git知识点还是过于简单了,因此买了本Git相关书籍从头了解下,并做笔记以便查阅(当然有时翻书更加方便)
刚好最近也打算开始好好整整 Github 仓库
初始化版本库
建立初始版本库有两种方法:从头开始创建或者克隆一个已有的版本库,下面是从头创建,执行后会有个.git隐藏文件夹
git init
查看版本库状态
使用 git status
查看版本库状态(非常常用),Git将所有文件分成3类:已追踪的(Tracked)、被忽略的(Ignored)以及未追踪的(Untracked)
echo "New data" > data git status
如果有些文件不想做追踪,想让Git忽略目录中的某些文件,只需要将其添加到 .gitignore
中即可
touch main.o git status echo main.o > .gitignore git status
添加/删除文件到版本库
使用 git add
添加文件到版本库,添加当前目录全部文件可用 .
表示,上述data文件从Untracked变成了to be committed;使用 git add
后,文件被暂存和追踪,准备在下个提交的时候加到版本库中;每个文件可被SHA1值来索引
git add data .gitignore git git status git ls-files --stage
接下来提交的是索引中的暂存的文件,而不是目录中的文件,因此有时工作目录下的文件版本会跟索引中的不一致;使用 git commit
来执行提交,如果使用 git commit --all
,Git会历遍整个版本库,暂存所有 已知的和修改的
文件,然后提交它们
git commit -m "first-operation" git status
如果想在版本库和工作目录中同时删除文件,可以用 git rm
命令;如果文件已修改但未提交,可用 git rm -f
来强制删除
git rm data git ls-files --stage
如果想找回已删除文件,还是可以恢复回来的
git checkout HEAD -- data
如果是只从工作目录中删除,那么 rm
即可,但是这样做的话,索引还是存在的即已暂存;如果想从已暂存转化为未暂存,则可以使用 git rm --cached
touch temp git add temp git status git rm --cached temp git status
文件重命名
使用 git mv
对文件进行重命名
git add data git mv data mydata
查看提交日记
使用 git log
查看提交日记
git commit -m "my-data" git log mydata
Git允许很多分支,因此在同一个版本库中可以有许多个不用的开发县。默认每次你提交到Git的文件都会被储存到master(主干)分支
分支操作
创建分支,用 git branch
命令,默认是在当前工作的分支上的最近提交启动一个新的分支
git branch dev-kgu
用 git branch
列出分支名,星号 *
开头的分支表示当前已检出的分支
git branch
查看分支,用 git show-branch
,其提供更加详细的分支信息输出,按时间以递序的形式列出对一个或对个分支有贡献的提交,结果显示如下:
$ git show-branch ! [dev-kgu] my-data * [master] my-data -- +* [dev-kgu] my-data
结果形式被一排破折号分为两部分,上方的部分列出分支名,星号(*)代表当前分支,不然以感叹号(!)标记;下方则是每个分支的提交矩阵,会看到有加号(+)、星号(*)或减号(-)出现的开头,其含义为:加号表示提交在一个分支中,星号突出显示存在于当前活动分支的提交,减号表示一个合并提交
检出分支,用 git checkout
,值得注意的是:如果工作目录中有文件修改但未提交则会报错
git checkout dev-kgu
如果不愿意保留上述修改,则可以加 -f
强制执行检出;如果想将修改保留在当前分支的话,则需要先 git commit
;如果想将修改保留在新检出的分支上,则需要加 -m
参数,如:
git checkout -m dev-kgu
如果主分支上修改了文件,并想将该修改提交到分支上,那么只需要在文件修改后对分支进行检出即可
创建并检出新分支,可以将创建-检出写成一行命令 git checkout -b new-branch
删除分支,加 -d
参数
git checkout -d dev-kgu
如果需要将分支的内容合并到主分支上,则需要用到 git merge
命令,比如将dev-kgu分支合并到master主分支上
git checkout master git merge dev-kgu
如有冲突的合并,Git并不解决冲突,这通常出现在对同个文件的同一处进行修改的时候;Git把这种争议性的修改在索引中标注为unmerged
diff操作
git diff
也是一个比较常用的命令,用于查看工作目录、索引、HEAD之间的差别:
git diff git diff HEAD git diff --cached
更改提交
更改提交在Git操作中很普遍,可以让版本库中某个提交的工作目录、索引及HEAD进行修改
git reset
有以下三点用法:
git reset --soft git reset --mixed git reset --hard
git cherry-pick
可以在不改变版本库中的现在历史记录,而是添加历史记录
git revert
用于引入一个新提交来抵消给定提交的影响,不修改版本库的现存历史记录,常见用途是撤销历史记录中的某个提交的影响
修改最新提交,即改变当前分支最近一次提交可用 git commit --amend
git rebase
命令是用来改变一串提交以什么为基础的
git rebase master branch
推送至远程仓库
用 git push
命令可将当前master分支推送到origin远程版本库
git push -u origin master
如果要推送分支,则
git push -u origin dev-kgu
如果想从远程仓库中拉一份克隆,可用 git clone
命令
如果想获取远程的分支,即将远程分支dev-kgu克隆到本地并命名为dev-kgu,可以在 git clone
后,再 git checkout -b dev-kgu origin/dev-kgu
git pull
命令可以拉取远程仓库更新本地仓库,如拉取远程仓库的分支来更新本地分支
git pull origin dev-kgu
以上内容均为书籍及网上资料所整理的,一些常用的命令简单的解释,具体Git原理以及每个命令对应的详细解释推荐看书籍效果更好哈
本文出自于 http://www.bioinfo-scrounger.com 转载请注明出处
以上所述就是小编给大家介绍的《Git简单使用笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Out of their Minds
Dennis Shasha、Cathy Lazere / Springer / 1998-07-02 / USD 16.00
This best-selling book is now available in an inexpensive softcover format. Imagine living during the Renaissance and being able to interview that eras greatest scientists about their inspirations, di......一起来看看 《Out of their Minds》 这本书的介绍吧!