git学习笔记

git学习清单

  • 什么是git
  • git的安装
  • git基本使用
  • git当前状态查询
  • git版本控制
  • 添加远程仓库
  • 分支管理
  • 标签

git简介

git是一个分布式版本控制系统,用于代码管理,是多人合作代码合并解决冲突的一个利器

git安装

直接到官方网站上下载安装即可

git的基本使用功能

这部分先抛去远程仓库,先讲一下本地仓库的使用。步骤如下:

  • 创建版本库

    首先创建一个空的文件夹,然后初始化版本库

mkdir MyDemo

cd MyDemo

git init

  • 编写自己的代码/文件等
  • 把文件提交到仓库中

这里的意思就是,虽然在文件夹中是存在了你编写后的文件/代码,但你建立的仓库还没有加进来这些内容,所以要执行提交命令

git add readme.txt

git commit -m “写了一个readme文件”

或者

git add .

git commit -m “提交所有的代码/文件”

执行完这些命令后,后面应该会出现 一些文件被修改的情况

git当前状态查询

git status

该命令会提示有没有已修改/添加的文件等待被add/commit

git diff

该命令提示有哪些代码/文件与上一个版本有什么不同

git版本控制

git log

git log --pretty-oneline //去除其他无用消息,只显示id和注释

使用上面的命令查看之前的版本

git reset --hard HEAD^

回退到上一个版本

git reflog

查看所以版本记录,包括最新版本被回退的信息

找到,之前的新版本ID

git reset --hard ID

返回到新版本

添加远程仓库

注册一个git代码管理网站,常用的有github,码云,coding等

ssh-keygen -t rsa -C "youremail@example.com"

首先使用命令生成密钥,将密钥添加到选择的网站上,密钥一般存储在C:\Users\用户名称.ssh

如:github

建立和你本地项目同名的仓库

复制github仓库地址

git remote add origin https://github.com/xxx/MyDemo.git

建立连接

git push -u origin master

把本地仓库内容推送到远程仓库上,第一次推送需要加**-u**

分支管理

分支图

  • master主分支

    一般由develop功能集成后合并

  • hotfix维护分支

    直接从master分支fork出来的分支,用于bug修复,修复完成后应该马上合并回master分支和develop分支,master分支用新版本号,打上tag

  • develop发展分支

    主要开发分支,新功能的分支由它扩展

  • feature功能分支

    每个新功能位于自己的一个分支,使用decelop分支作为父分支,新功能完成后,合并回develop

  • 预发布测试分支

    develop功能集成后,由develop分支fork一个release发布分支,release分支主要用于bug修复,文档生成和其他面向发布的任务,测试完毕后合并到master分支,并分配一个版本号打上Tag

创建分支

创建dev分支,并切换到dev分支

git branch dev

git checkout dev

合并成一句话

git checkout -b dev

查看所有分支

git branch

在dev分支上编写代码,

提交

git push origin [分支名称]

git checkout master

切换到master分支

把dev分支的结果合并到master分支上

git merge dev

合并完成后,删除dev分支

git branch -d dev

解决冲突

在多人合作开发中,master不会只有你自己一个合并更新的,当另一个人更新了master,你再合并的分支的话就会产生冲突

  • 如在本地仓库中master和自己的分支产生冲突

Auto-merging readme.txt

CONFLICT (add/add): Merge conflict in readme.txt

Automatic merge failed; fix conflicts and then commit the result.

git会把所有修改过的内容都整合在一起,这里需要自己手动修改

上传、提交、删除

git add .

git commit -m “整合”

git push origin master

git branch -d [分支名字]

  • 远程仓库和其他人更新同一个分支出现冲突时

git push origin master

error: failed to push some refs to ‘https://github.com/Dream97/GitDemo.git
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.

如上,当我想更新master分支时,发现远程的分支早就被别人修改过,抛出错误

我需要把远程的仓库pull下来

git pull

执行到这一步发现我的代码又被合并了,手动修改

git add .

git commit -m “整合”

git push origin master

有时候git pull会失败,是因为没有指定本地分支和远程分支的链接,需要配置远程库和本地的链接

git branch --set-upstream-to=origin/[名字] [名字]

git pull

标签

标签(tag)用于标识版本的的一个快照,指向某个commit的指针,创建和删除标签都是瞬间完成的

git checkout master //切换到要打标签的分支

git tag v1.0 //打新标签

git tag //查看所有标签

也可以把标签打到历史提交的commit上

git log --pretty=oneline --abbrev-commit //查找历史提交

git tag v0.9 [历史commit id]

git tag

查看标签信息

git show v0.9

指定标签信息

git tag -a v0.9 -m “debug version”

推送标签

git push origin v0.9

git push origin --tags //推送全部尚未推送到远程的本地标签

删除本地标签

git tag -d v0.9

删除远程标签

git tag -d v0.9

git push origin :refs/tags/v0.9

参考资料

[1]Git分支那点事儿(上):什么是分支,如何管理分支?

[2]Git教程(廖雪峰)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值