Linux中Git快速上手使用

1 篇文章 0 订阅

一、Git简介

1. Git是什么
开源的分布式vcs(版本控制系统:是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统),去中心化。

2. 为什么推出Git
大小项目均可以灵活管理;Linux的代码管理工具BitKeeper不适合开源社区,故Linux之父Torvalds推出了Git

3. Git的经典工作流程图:
在这里插入图片描述
图中4个部分为工作架构:前三个是本地;远程仓库是中心服务器

4. Git与GitHub的关系
Git是一个分布式的版本控制系统,最初应用在Linux源码协同开发中
GitHub是一个基于Git的项目托管平台,提供web界面,你可以在上面创建资源仓库来存放你的项目。现已发展成为全球最大的开源社区平台。现在已归属于微软,50亿美金

Git shell应用

Linux Git shell
1. Git的安装
一般Linux发行套件自带git,如没有yum install git安装即可

2. Git配置
用户名和邮箱配置,方便与仓库间做交互时候标记来源
git config --global user.name “xxx”
git config --global user.email “xxx”

3. 本地Git命令
简单三步骤:
1)初始化:在Linux中新建项目目录后,第一次需要在该目录下创建本地git仓库:git init

2)add到缓存区后提交:先提交文件到缓存区:git add 单个文件/git add .(全部文件),再提交到本地库:git commit -m “first commit”(-m是让写个注释)

3)提交完毕后查看版本仓库状态:git status(如果你提交后没有修改提交的文件则显示nothing to commit)

比较差异:git diff
1) 比较工作区和缓存区差异:git diff 文件名
2) 比较缓存区和本地仓库差异:git diff --cached 文件名
3) 比较工作区和本地仓库差异:git diff HEAD 文件名

查看日志:git log
日志里:–表示修改后的目录;++表示修改前的目录
如果修改文件一共提交了两次,通过日志里commitid(一长串的字符)查看两个版本之间的文件差异:git diff id1 id2

查看所有分支的操作记录:git reflog(可以看到被删除的commitid),例如查看到第一行HEAD@{0}(最新版本号永远是0)第二行HEAD@{1}(曾经的操作版本号依次下移)

撤销修改的文件:
1)工作区修改了,没有add到缓存区:git checkout – 文件名(这是用版本库中的文件覆盖掉了工作区中的指定文件)
2)添加到缓存区,没有到本地仓库库:git reset HEAD 文件名,再按照1)来
3)已经添加到本地仓库,没有推送到远程仓库,直接回退版本:
git reset --hard HEAD^ //回到当前版本的上个版本
git reset --hard HEAD@{1} //回退到指定版本
4) 用rm -f误删文件:git checkout – 文件名
5) 用git rm误删文件没有commit:git reset HEAD 文件名,再按照步骤4)来 //4)5)对比1)2)

4. 远程仓库Git命令(url均使用HTTP)
本地到远程仓库的关联:git remote add 远程仓库名 [ url ] //git remote add origin xxx
推送本地仓库到远程仓库:git push [remote-name] [local-branch-name]:[remote-branch-name] // git push origin master:master(可直接写为一个master)
第一次从远程仓库同步到本地仓库:git clone [url]
第一次拷贝用git clone,不是第一次就用git fetch或git pull(=git fetch+git merge)

5. 分支操作
什么是分支:针对不同用途或重大更新,给项目起的不同用途的名字,用以显式区分各个项目版本之间的不同。

分支的作用:为了更好、更清晰、更简洁、更专业的进行版本迭代、提升开发效率。

查看本地分支 git branch;查看远程分支 git branch -r;查看所有分支 git branch -a
创建分支:git branch branchName
切换分支:git checkout branchName
创建并切换分支:git checkout -b dev
删除分支:git branch -d dev
强行删除还未合并的分支:git branch -D dev
推送新的分支到远程:git push origin dev:dev(远程分支可以不存在直接写个同名的就行。如果Git分支推送出现错误:1.本地git仓库目录下为空;2.本地仓库add后未commit;3.git init错误

分支合并步骤:
1)git checkout master //切换到主分支
2)git merge dev //合并子分支
3)git push origin master //将合并后的最新分支推送到远端
4)git push origin :dev //推送一个空分支到远程,相当于删除远程分支
5)git push origin --delete dev //显式删除一个名字为dev远程分支4)5)选择其一

6. 冲突合并
当多个分支或者多个开发者,同时修改相同文件的相同区域时,经常会出现合并冲突问题。例如master和dev同时修改了一个文件commit后,在master中合并dev分支git merge dev后会产生冲突
解决办法:合并后,在master里编辑文件手动删除冲突里不想要的内容即可

7. 关于pull真实操作
在业务中,真正push提交前,我们还是要先pull一下代码
运行 git pull origin master
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。
git pull <远程主机名> <远程分支名>:<本地分支名> // 后面部分和push相反

比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
git pull origin next:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin next

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值