博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git学习笔记
阅读量:4285 次
发布时间:2019-05-27

本文共 3026 字,大约阅读时间需要 10 分钟。

1、先安装git   sudo apt-get install git2、设置git 用户名和邮箱   git config --global user.email "you@example.com"   git config --global user.name "Your name"3、开始使用   首先创建一个版本库   mkdir mygit   git init4、提交写的内容   git add readme.txt   git commit -m  "add a readme file"5、修改文件内容,再执行第四步6、查看当前文件的状态 git status7、若文件被修改过,用git diff 可以查看(在修改过未提交之前可以用这个命令查看)8、查看修改日志  git log   忽略没有必要的信息 git log --pretty=online   9、回退版本   Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100   回退上一版本 git reset --hard HEAD^    回退指定的版本  git reset --hard commit_id(前七位)      git在内部有个指向当前版本的HEAD指针   git reflog 记录你的每一次命令10、介绍工作区和暂存区    工作区:能看的到的目录,.git是一个隐藏目录,不是工作区,而是Git的版本库    版本库:包括暂存区和分支master    git add 把文件添加进去,实际上就是把文件修改添加到暂存区    git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支11、git管理的是修改,并不是文件    当你把把文件添加到暂存区,未提交之前再修改,提交之后发现并不是最终版本原因是你没有把最后修改的文件给添加上去12、撤销修改	    1) 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file    2) 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。    3) 已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。13、删除文件    git rm filename14、远程仓库    要关联一个远程库,使用命令git remote add origin https://www.github.com/zsjfenger/learngit.git    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改15、远程库的克隆    使用https除了速度慢意外,还有个最大的麻烦是每次推送都必须输入口令,但是默写只开放http端口的公司内部就无法使用ssh协议而只能用https    1) git clone https://github.com/zsjfenger/gittest.git     2) git clone git@github.com:zsj/gittest.git16、分支管理    查看分支:git branch    创建分支:git branch 
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
17、解决冲突 当主分支master和新的分支都进行修改,提交合并发生冲突时,手动修改,并添加提交 查看分支合并图 git log --graph --pretty=oneline --abbrev-commit18、分支管理 合并:git merge --no-ff -m "content" dev 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。19、强行删除分支 git branch -D feature-vulcan20、多人协作 git pull 抓取远程最新的提交,如果抓取失败,可能是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:git branch --set-upstream dev origin/dev 并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢? master分支是主分支,因此要时刻与远程同步; dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步; bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug; feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发 多人协作的工作模式通常是这样: 首先,可以试图用git push origin branch-name推送自己的修改; 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并; 如果合并有冲突,则解决冲突,并在本地提交; 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功! 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。21、标签 命令git tag
用于新建一个标签,默认为HEAD,也可以指定一个commit id; git tag -a
-m "blablabla..."可以指定标签信息; git tag -s
-m "blablabla..."可以用PGP签名标签; 命令git tag可以查看所有标签。 git show
可以看到文字说明 命令git push origin
可以推送一个本地标签到;(远程) 命令git push origin --tags可以推送全部未推送过的本地标签;(远程) 命令git tag -d
可以删除一个本地标签; 命令git push origin :refs/tags/
可以删除一个远程标签。(先删除本地标签)

      git学习笔记参考:

转载地址:http://mjsgi.baihongyu.com/

你可能感兴趣的文章
社区发现的3个评估指标:标准化互信息NMI,ARI指标,以及模块度(modularity)
查看>>
机器学习算法与Python实践之(六)二分k均值聚类
查看>>
逻辑回归 和 朴素贝叶斯 两者间的区别
查看>>
模块度与Louvain社区发现算法
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射
查看>>
机器学习降维算法一:PCA(主成分分析算法)
查看>>
非常见降维方法:Laplacian Eigenmaps 拉普拉斯特征映射
查看>>
NMF 非负矩阵分解(Non-negative Matrix Factorization)实践
查看>>
谱聚类(spectral clustering)原理总结
查看>>
CPM(Cluster Percolation method)派系过滤算法
查看>>
多目标进化算法(MOEAs)概述
查看>>
AdaBoost与随机森林区别
查看>>
坐标下降法(Coordinate descent)
查看>>
Matlab plot画图 坐标字体、字号、范围、间隔等的设置
查看>>
LATEX调整公式、图片与正文间距离,文字间距离,调整空白大小
查看>>
eps格式图像空白边缘裁剪
查看>>
稀疏问题的学习
查看>>
机器学习(6) MovieLens数据集
查看>>
matlab读取UCI中获取的.data文件
查看>>