Git版本控制 (安装与使用)

安装命令如下:

sudo apt-get install git

新建一个目录git_test,在git_test目录下创建一个版本库

创建一个版本库:

git init

创建一个版本:

git add code.txt

git commit -m "版本说明"

查看版本记录:

git log

回到某一个版本:

git reset --hard HEAD^ (回到上一个版本,HEAD^^表示上上个版本,

HEAD~1 上一个版本, HEAD~20前20个版本)

也可以通过git log ,查看版本号之后,通过版本号回到制定版本:

git reset --hard 版本号(例如:git reset --hard b3232d45)

如果关闭终端,可以通过下面命令,查看所有的操作:

git reflog

查看当前工作树的状态:

git status

丢弃工作区的改动

git checkout -- <文件> (例如:git checkout -- cook.txt)

撤销暂存区的改动,放回工作区

git reset HEAD <文件>

小结:

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考[版本回退]一节。git reset --hard HEAD^

对比工作区和某个版本的不同

git diff HEAD -- code.txt

对比两个版本间文件的不同:

git diff HEAD HEAD^ -- code.txt

git diff 8ba028c 061734 -- code.txt

删除工作区文件

git rm 文件 并且提交 git commit -m '说明'

另一种情况是删错了,提交之前,可以直接使用git checkout – code2.txt,这样文件code2.txt又回来了。

小结:

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

分支管理

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

解决冲突

git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存

分支管理策略

如果要强制禁用fast forward模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

git merge --no-f -m '禁用fast forward' dev

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

Bug分支

存储当前分支的工作状态

git stash

然后返回主分支,重新创建 修改bug的临时分支,修改完后提交合并bug分支。

最后返回当时工作的状态:

git stash pop

github的使用

配置github

在ubuntu的命令行中,回到用户的主目录下,编辑文件.gitconfig,修改某台机器的git配置。

修改为注册github时的邮箱,填写用户名

使用如下命令生成ssh密钥。

ssh-keygen -t rsa -C "邮箱地址"

进入主目录下的.ssh文件件,下面有两个文件。

公钥为id_rsa.pub

私钥为id_rsa

查看公钥内容,复制此内容

回到浏览器中,填写标题,粘贴公钥

克隆项目

复制git项目的地址

在本地终端进行客隆:

git clone git@github.com:geyi8901/bj18.git

如果克隆出错,输入以下命令解决:

eval "$(ssh-agent -S)'

ssh-add

上传分支

项目克隆到本地之后,执行如下命令创建分支smart.

git checkout -b smart

本地开发代码之后,需要git add git commit -m 最后进行代码分支推送。

推送分支,就是把该分支上的所有本地提交推送到远程库,推送时要指定本地分支,这样,git就会把该分支推送到远程库对应的远程分支上

git push origin 分支名称

例:

git push origin smart

如果上传出错,重新建立

将本地分支跟踪服务器分支

git branch --set-upstream-to=origin/远程分支名称 本地分支名称

例:

git branch --set-upstream-to=origin/smart smart

从远程分支上拉取代码

git pull origin 分支名称

例:

git pull origin smart

使用上述命令会把远程分支smart上的代码下载并合并到本地所在分支。

工作使用git

项目经理:

项目经理搭建项目的框架。

搭建完项目框架之后,项目经理把项目框架代码放到服务器。

普通员工:

在自己的电脑上,生成ssh公钥,然后把公钥给项目经理,项目经理把它添加的服务器上面。

项目经理会给每个组员的项目代码的地址,组员把代码下载到自己的电脑上。

创建本地的分支dev,在dev分支中进行每天的开发。

每一个员工开发完自己的代码之后,都需要将代码发布远程的dev分支上。

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