概述
Git使用流程
在写流程之前,我先说下我之前刚接触的时候一些困惑,作为一名初学的小白,git,gitlab 和github傻傻的分不清,怎么办,习惯性的去百度,令人头大的是这些教程不是一些作为刚学的看不懂的指令,就是一些零零碎碎的东西,关键是还没见过这个,即使看到有用的也错过了,后来终于装好了git,去找gitlab教程的时候发现资源太少了于是将gitlab github理解为版本管理工具的软件,抱着这样的想法我去装软件了,结果不言而喻。这里我将我的问题一一列出,并写出我的理解。
Git就是一个版本管理工具,就是你可以在不联网的状态下管理你的文件或程序,gitlab就像一个网盘,你可以将git管理的文件上传到这里,其实这是一个网站,就是每个程序员写的程序,可以在gitlab上建立一个网上的仓库,你每次提交的时候可以把代码提交到网上,这样你的每次提交,队友也都可以看到代码,同时队友也可以跟你一起修改代码。如图:
一.关于git的安装:
1.找到这个安装包或直接在官网下载https://git-scm.com/downloads,找到windows
点击下载,选择你的操作系统位数,
2.点击安装包,点击下一步,出来选择安装目录,不建议装c盘
3.一路下一步,安装完成,在桌面右击出现以下图标
恭喜安装完成。
二.关于gitlab注册账号
这里建议用坚果vpn,因为gitlab在注册的时候需要翻墙,而且第一次用坚果vpn时有一天试用,不用充钱。
1.登录gitlab官网 https://gitlab.com/users/sign_in
2.注册账号 点击register
4.然后查看你的邮箱,点击登录,输入邮箱和密码即可
恭喜注册完成
三.本地Git和gitlab连接
1.首先打开在命令行里输入
git config --global user.name “Your Name”
git config --global user.email “email@example.com”
将“your name”改成你的昵称
将邮箱改成你注册gitlab的邮箱
2.在命令行中输入
ssh-keygen -t rsa -C “你的邮箱”
一路回车生成你的密钥 可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
密钥打开方式有两种:直接找到文件打开,不建议这样,网上说用记事本直接打开会对密钥损伤(具体我没试过)
或者输入 cat id_rsa.pub 可直接打开
3.复制刚才的密钥,点击你的头像,会出现如下图,点击settings
出现以下图,点击ssh keys 然后将密钥和名字弄好,点击生成,下面红色部分就是我弄好的密钥。
恭喜连接完成
四.现在我们已经打通了本地和远程仓库的通道,现在我们用命令行感受下git的魅力。
这里先有几个常见的命令行 pwd :显示当前位置
cd … :返回上一目录
cd 文件夹 :到这个文件夹
ls :显示当前文件夹的文件
Vi 文件名 :打开这个文件
1.创建本地版本库
简单理解为建立一个git可以管理的目录,
mkdir 名字 :创建一个目录
cd 名字:进入目录
git init 将这个目录变成git管理的目录
2.添加文件并管理本地版本库
这里我们添加一个reamde.txt 文件 ,并添加一些内容
①git add reamde.txt 把文件添加到仓库
②git commit -m “提交说明” 把文件提交到仓库
这里说下add一次只能添加一个文件,但是commit可以一次提交很多
若你对文件进行修改,可以用 git status 可以掌握工作区状态(前提是没有添加和提交到版本库里)
git diff 可以查看修改的内容
3.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – 文件名。
4.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD 文件名,就回到了1,第二步按1操作。
5.已经提交了不合适的修改到版本库时,想要撤销本次提交,当你不断修改,不断提交过程中,某天修改错了,可以通过git log 查看历史版本,若你想回到上个版本 git reset --hard HEAD^
上上个就是 git reset --hard HEAD^^
上100个就是git reset --hard HEAD~100
现在你最新版本不存在了,想回到最新版本 找找他的commt id号
git reset --hard id号 就回到最新版本
6.当我们新添加一个文件,不想要了 可用 rm 文件名 (删除工作区文件)
若这个文件已经提交,那么就会导致工作区和版本库不一致,此时有两个选择 一 从版本库也删除 git rm 文件名 并且 git commit 提交;二 复原工作区文件 git checkout --文件名
7.分支(大杀器)
每次提交到版本库, Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!
不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:
假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
所以Git合并分支也很快!就改改指针,工作区内容也不变!
合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:
这里列出他们的命令
查看分支且看出当前分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
若发生这样的情况,你会发现合并了有冲突这样你就要修改这个文件后再提交。就没问题了
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m “分支名字” dev
这个可以看到你的分支情况
git log --graph --pretty=oneline --abbrev-commit
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
五.本地和远程通道之前打通了,git一些常用也看了,下面我们看看gitlab上一些操作
1.新建个仓库
无论在什么界面,点下狐狸头就会回到这个界面,图右点击新建一个仓库,填写项目名称,选择可见级别。点击左下角建立
建好后如图
2.从本地仓库推送到远程仓库
根据提示在命令行输入如下命令
即可将本地库推送到远程库,推送成功如图。
3.从远程克隆到本地
$ git clone 加 箭头所指在命令行里输入即可
桌面多了the-mnem 目录,这便是从远程克隆的效果
Sourcetree安装和使用
首先将要让sourcetree能够与远程建立连接,因为之前已经创建ssh密钥这里添加 工具>选项>一般,切换到ssh即可
使用1.将本地文件推送到远程仓库
第一种方法,先在本地建立仓库,参看之前命令行操作,
将本地仓库添加到Sourcetree
若出现以下情况, 不能添加,因为你没将这个设置为一个仓库,将第一步重来一遍。
这样是正确的
在远程建立一个空仓库
复制ssh
点击添加,并填写远端名称和路径(ssh)
点击推送即可推送到远程仓库
刷新一下,你会发现文件到已经有了。
再到软件看看
发现多了黄色箭头指向的部分(远程仓库)
若要从远程克隆一个仓库,就比较简单了
若远程仓库有更新,你不必将所有文件再下载一遍,点击获取(查看更新,不会下载)
你会发现拉取多了个1,且在图谱处远程比本地超前一步。点击拉取,将更新下载
本地与远程同步了
若我们在本地更新了,比如在本地新建一个文件,
我又将之前的图放出来,可以看下。将文件放入暂存区,然后点击提交到仓库,填写提交说明
发现本地比远程多了一步,且提示推送。点击推送即可
远程有这个文件了。
我们在不断修改,不断提交过程中总会遇见一些不愉快的情况
情景一 我修改了文件,没有保存到本地仓库,但不想要了
情景二 修改并保存,但未提交到本地仓库
情景三 修改保存并提交到本地仓库
情景四 修改保存提交并推送到远程仓库
解决方法
情景一:当你修改后,sourcetree会提醒你保存,直接去本地删除你的修改,sourcetree提醒保存就没有了,这样就完成了,或者选择丢弃也可以
情景二:点击取消,重复情景一
情景三:点到你要回到的地点,如图操作,
下面有三个选择,
若选择一代表退回到暂存区,二代表回到工作区,三代表删除本地文件改变
情景四:先操作情景三,在强行推送
关于共同开发统一代码,即分支操作。假设有两个人在开发同一代码,他们要同时从远程克隆一份代码到本地。
例如,git-1和 git-2 分别 克隆工程到本地,且各自创建分支。
本地文件。
然后就可以修改文件,修改完毕,点击保存,提交到本地仓库,然后提交到远程仓库
这时两人都提交他们的修改,
远程分支提交后的结果
现在开始合并代码,先获取远程仓库的更新,点击此处不是你的分支,
出现以下情况,点击确定,
点击到自己的分支,将别人的分支合并到自己分支
检验本地和远程仓库的连接状态
ssh -T git@gitlab.com
若成功连接,显示 welcom …
2019.09.11
默默不熟
最后
以上就是矮小爆米花为你收集整理的git初级学习的全部内容,希望文章能够帮你解决git初级学习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复