Git分布式版本控制器的使用

Git分布式版本控制器的使用:
1.创建一个版本库:mkdir repository(库名称)
2.进入该库:cd repository
psw 命令用于显示当前目录
3.git init : 把这个目录变成git可以管理的仓库,可见到生成了.git目录
4.新建项目文件test.txt,放到仓库根目录或者子目录下都行
5.执行git add test.txt ,把文件添加到仓库
6.git commit -m "这里是注释"
git status 命令 可以让我们时刻掌握仓库当前的状态。
git diff 命令查看修改过的内容。
7.当我们再次修改完test.txt文件的时候,可以先通过git status和git diff命令查看当前文件的状态,最后再依次执行5,6的操作,并再次查看一下状态。
git log 命令显示从最近到最远的提交日志;git log --pretty=oneline 命令可以显示精简版提交日志
git reflog 命令查看命令历史,方便我们知道版本id。
cat test.txt 命令查看文件的内容
8.当我们想回退或者前进到那个版本的时候,有两种方法:
1.在git中,HEAD表示当前版本,上一个版本是HEAD,上上个版本是HEAD^,上100个版本可以HEAD~100
2.通过版本id来查找。
git reset --hard commit_id(推荐)
git reset --hard HEAD~num

工作区和暂存区:
工作区:就是在电脑能看到的目录,比如repository文件夹就是一个工作区。
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是git的版本库。git的版本库存放了很多东西,其中最重要的就是称为stage(或者index)的暂存区,还有git为我们自动创建的第一个分支master,以及master的一个指针叫HEAD。

image.png

第一步git add是把文件添加进去,实际上就是把文件修改添加到暂存区
第二步git commit提交,实际上就是把暂存区的所有内容提交到当前分支
简单理解:需要提交的文件修改统统放到暂存区,然后,一次性提交暂存区的所有修改。
git 追踪并管理的是修改,不是文件。
9.撤销修改:
a.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- test.txt
b.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用git reset HEAD test.txt,就回到a场景,第二步按照场景a来操作。
c.已经提交了不合适的修改到版本库,想要撤销本次提交,可以直接回退到前一版本,不过前提是没有推送到远程库。
10.删除文件:
rm test.txt //删除工作区的文件
git rm test.txt //删除工作区和暂存区的文件,commit后才会删除版本库的文件
git commit -m "注释"
11.创建远程仓库:
①创建ssh key。在windows下打开git bash,输入命令:ssh-keygen -t rsa -C "你本人邮箱";就会在你的用户主目录下找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是ssh key的密钥对,id_rsa是私钥,不能泄露,id_rsa_pub是公钥,可以放心告诉别人。
②登录github,在setting里面找到ssh key页面添加新的ssh key,添加任意title,在key文本框里粘贴id_rsa.pub文件的内容,点击添加即可。
③在本地创建一个git仓库,在github上面也创建一个一样名字的仓库;现在就可以通过以下命令来让本地仓库和远程的仓库实现同步:
git remote add origin git@github.com:XXX/xxx.git
其中XXX是你自己在github的账户名,添加后,远程库的名字就是origin,这是git默认的叫法。
接着输入以下一条命令即可实现把本地的仓库内容推送到github上的仓库
git push -u origin master
第一次推送,由于远程库是空的,我们第一次推送加了-u参数 ,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。以后只要在本地commit了,只要执行一下命令即可:
git push origin master
上面是先创建本地仓库在创建远程仓库,其实最好是先在github上面创建一个仓库,任何人都可以通过复制上面的仓库内容到本地,然后进行操作。执行以下命令:
git clone git@github.com:XXX/xxx.git
XXX是创建远程仓库那个人的github账户名,xxx是仓库名
12.分支:
a.查看分支:git branch
b.创建分支:git branch 分支名称
c.切换分支:git checkout 分支名称
d.创建+切换分支:git checkout -b 分支名称
e.合并某分支到当前分支:git merge 需要被合并的分支
f.删除分支:git branch -d 需要被删除的分支
g.假如主分支做了修改,别的分支也做了修改,那么合并分支就会出现冲突,git会标记处不同分支的内容
image.png

删除冲突后再添加提交一次,就可以合并成功了,可以用命令:git log --graph --pretty=oneline --abbreb-commit 来查看合并情况。
分支策略:master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活,创建一个dev分支,干活都在dev分支上,也就是说dev分支是不稳定的,等到需要发布的时候,再把dev分支合并到master上,再在master分支上发布;多人都在dev上干活,每个人都有一个分支,是不是往dev分支上合并就行了。
image.png

bug分支:当我们在某个分支上工作到一半时,需要临时去处理一个紧急bug,这时候我们可以先把你正在工作的工作现场保存起来, 等以后恢复现场后继续工作。保存工作现场的命令:git stash ; 查看工作现场列表命令:git stash list ;恢复工作现场命令:git stash apply,恢复后stash内容并不删除,需要使用git stash drop命令来删除。也可以合起来:git stash pop :恢复的同时删除stash内容。
如果一个分支还没合并之前就想把它删除掉,git branch -d [fileName]是删除合并后的命令,git branch -D [fileName]是删除合并前的命令。
多人协作:
git remote / git remote -v:查看远程库信息
master分支和dev分支都是要时刻与远程仓库同步的。
a.首先,可以试图用git push origin branch-name推送自己的修改;
b.如果推送失败,则因为远程分支比你本地的更新,需要先用git pull试图合并;
c.如果合并有冲突,则解决冲突,并在本地提交;
d.没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功;
e.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name(本地) origin/branch-name(远程)
13.版本标签:
git tag [tagName] : 新建一个标签,默认为当前最新提交的版本,也可以指定一个commit_id;
git tag -a [tagName] -m "标签信息..." : 可以指定标签信息
git tag : 可以查看所有标签
git tag -d [tagName] : 删除本地标签
git push origin [tagName] : 推送标签到远程
git push origin --tags : 一次性推送全部尚未推送到远程的本地标签
git tag -d [tagName] + git push origin :refs/tags/[tagName] : 删除远程标签

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容