程序员都需要知道的Git。

简介: 程序员必须会的技能哦,快来看看吧。


初识git

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

git是世界上最先进的分布式版本控制系统(没有之一)

啥是版本控制系统??

例如:

一个项目,我们开发了第一版、第二版、第三版、一定不改版、一定一定不改版、最终版、终极不再改动再改就砸电脑版,最终敲定的方案是第一版。这种情况下,改到最后已经看不出当初的模样了。所以,我们需要将每一次的修改记录并保存下来,以便于为后面的版本溯源。

而这时,有一个软件可以帮你自动记录每个文件的改动,还可以让同事一起参与协作编辑,这样自己就不用将每一次改动前的版本手动保存,也不再需要将改动后的文件传来传去 ,每一次需要就去软件中看就行了。

而git就可以很好的解决以上问题。

版本控制系统是软件开发必备的代码管理工具,主要用于解决以下四个方面的问题:

  1. 代码备份
  2. 版本控制
  3. 协同开发
  4. 责任追溯

集中式VS分布式

集中式版本控制系统(代表:SVN),版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

分布式版本控制系统(代表:Git)

分布式版本控制系统没有“中央服务器”每个人的电脑上都是一个完整的版本库,这样,我们工作的时候,就不需要联网了,因为版本库就在自己的电脑上。那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

集中式和分布式的区别是:
你的本地是否有完整的版本库历史!
假设SVN服务器没了,那你丢掉了所有历史信息,因为你的本地只有当前版本以及部分历史信息。
假设GitHub服务器没了,你不会丢掉任何git历史信息,因为你的本地有完整的版本库信息。你可以把本地的git库重新上传到另外的git服务商。
分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

git使用

Git安装

1.从Git官网下载,根据不同操作系统去进行相应的下载。(此处以Windows为例)

安装成功后,相应的文件夹下会是这样的。

鼠标右键也可以

然后点击bash.exe,就会弹出一个命令窗口的东西,即git安装成功了。

Git的使用命令

2.git 环境配置(第一次使用时是必须的要配置的)

用户名,邮箱

$ git config --global user.name "Your Name"//这里写的是你自己的用户名和邮箱哈
$ git config --global user.email "email@example.com"

3.创建版本库

什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

创建版本库命令
$ mkdir test(加文件名)  //创建
$ cd test //使用
$ pwd //查看当前目录
$ git init//初始化,生成.git文件(若该文件隐藏,则使用ls -ah)

注意:必须在当前版本库和当前目录下

删除文件

$ rm test.txt
//直接删除
$ git checkout -- test.txt//删错了,恢复(撤销修改)

4.将文件添加到缓存区去,并将文件提交仓库中。

$ git add test.txt  //添加
$ git commit -m "test.txt 文件提交" //提交
$ git status  //查看是否还有文件未提交(查看文件的状态)
$ git diff test.txt//(查看文件修改了啥内容)
$ cat test.txt  //查看文件内容

5.版本控制

查看历史记录

$ git log//查看提交历史记录,从最近到最远,可以看到3次
$ git log --pretty=oneline//简洁查看

版本回退

$ git reset --hard HEAD^ //回退一个版本
$ git reset --hard  //回退前两个版本,一次类推
$ git reset --hard HEAD HEAD~100 //回退到前100个版本
$git reset --hard  版本号//回到最新的版本
$ git reflog  //查看每一次修改历史,查看了版本号之后,在进行恢复

撤销修改

$ git checkout -- test.txt//丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt//丢弃暂存区的修改(若已提交,则回退)

远程仓库

1.初次创建Gitee(github)账号,需要先进行SSH公钥设置,因为本地git仓库和Gitee仓库之间的传输是通过SSH加密的

$ ssh-keygen -t rsa -C "youremail@example.com"  //创建SSH Key

2.登录Gitee 点击我的设置中安全设置的SSH公钥,将你生成的黏贴到此处,并添加它。

3.创建一个新的仓库

$ git remote add origin 网址  //关联

网址即那个路径

$ git push -u origin master//将本地内容推送到远程仓库(第一次提交)(第一次应该还要输入一次Gitee账号密码)
$ git push origin master//将本地内容推送到远程仓库(之后体交)
$ git remote -v        //查看远程仓库信息
$ git remote rm origin  //删除远程仓库(解绑)

4.克隆一个本地仓库

$ git clone 网址//克隆远程仓库
$ ls//查看
$ git remote  //查看远程库的信息
$ git remote -v //查看远程库的详细信息

5.协作开发

1.创建分支和合并分支

$ git checkout -b dev //创建并切换到分支dev
$ git branch dev  //创建dev
$ git checkout dev  //切换dev
$ git branch  //查看当前分支
$ git branch -d dev //删除dev分支
$ git merge dev//(合并到master 分支上)
$ git merge -no -ff -m"注释" dev //(注释dev分支上)
-no -ff//用来禁用Fast forword模式

若在工作中突然遇到了bug ,工作还未完成,这时可以先将工作现场藏起来,恢复后在继续工作。

$ git stash //将现场储藏起来
$ git stash list//查看储存的工作现场
$git stash apply //恢复
$git stash drop//删除
$git stash pop//恢复并删除

2.推送分支

$ git push origin master(dev) //推送分支
$ git checkout -b dev origin/dev  //创建远程origin的dev分支到本地
A推送的和B推送的产生了冲突
 $ git pull//抓取分支(解决冲突)
 $ git branch --set-upstream-to=dev(master) dev//指定本地与远程dev的链接
 $ git rebase //把本地未push的分叉提交历史整理成直线

其他可能会用到的命令操作

$ git config --global alias.last 'log -1'//显示最后一次提交信息
$ git last  //显示最近一次的提交
$ cat .git/config //查看每个仓库的git配置文件
$ cat .gitconfig  //查看当前用户的git配置文件
$ git config --global color.ui true //让git显示颜色

更多命令自行去搜吧,需要啥查啥,点子搭积木吧。

附上idea 链接 gitee

打开设置,找到插件,下载Gitee并应用即可。

点击gitee ,点击加号,登录即可。看到账号即链接成功。

回到主页面,打开终端。正常输入git命令即可。

若有收获,就点个赞吧


目录
相关文章
|
5月前
|
程序员 开发工具 git
好程序员Git入门到精通教程
本课程主要通过命令行和idea来介绍Git的安装、仓库创建、工作流、远程仓库、克隆仓库、标签管理和分支管理等Git的主要内容。 另外关于GitHub的使用介绍也有完整的说明和使用,接轨生产环境使用方式。
40 1
好程序员Git入门到精通教程
|
5月前
|
程序员 开发工具 git
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
169 1
|
5月前
|
存储 程序员 开发工具
程序员的20大Git面试问题及答案
程序员的20大Git面试问题及答案
|
安全 程序员 开发工具
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
180 0
|
数据采集 安全 JavaScript
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
162 0
|
数据采集 缓存 安全
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
|
前端开发 数据可视化 程序员
超详细的前端程序员git指北
超详细的前端程序员git指北 git是团队开发必备工具之一,本期教程我们从一个开发人员开发新功能,然后合并到主分支上的一整个流程进行演示讲解,而不是仅仅告诉你这个命令的作用是什么,区别是什么,毕竟程序员始终得贯穿“学以致用”这条硬道理,最后再对不同的常见命令及逆行讲解。
169 0
|
缓存 安全 程序员
程序员都应该知道的 21 个 Git 命令
诞生于 2005 年的分布式版本管理工具:Git,现如今已成为大多数公司协同合作的必备工具之一了。它直到现在依然保持着简单易用、高效管理的特点。相信很多刚踏入职场的猿友们,第一个需要学会使用的就是 Git。今天,我们来重温经常使用的 20 个 Git 命令,也可当做自己的 Git 命令速查表。
114 0
程序员都应该知道的 21 个 Git 命令
|
存储 安全 IDE
Git 入门看这一篇就够了!程序员防被diss必会技能走一波
今天简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。 如果觉得不错的话,一定要点个关注哦 本文的结构如下: 作者和开发原由 Git 的数据模型 常用命令 资源推荐 作者和开发原由 Talk is cheap. Show me the code. 这句话就出自 Linux 和 Git 的作者Linus Torvalds。 原本 Linux 内核的版本控制系统是用的 BitKeeper,然而 2005 年,BitMover 公司不再让 Linux 开发团队免费使用了。。 Linus 一听,不给用了?老子自己写!
Git 入门看这一篇就够了!程序员防被diss必会技能走一波
|
存储 程序员 开发工具
Git算不算程序员的必备技能?
Git的背后有着一个非常精彩的成功故事。2005年4月,Linus Torvalds因不满当时任何一个可用的开源版本控制系统,就亲自着手实现了Git。 时至今日,如果我们在Google中搜索“git version control”这几个关键词,都会看到数以百万计的返回结果。
26830 0

相关实验场景

更多