git教程(实战开发版)

读前必看:当你搜到这篇文章时相信你的git是已经安装并配置好邮箱账户的(下载安装,无脑下一步,安装完后任意文件夹右键都会有git窗口选项)。本文将从连接远程git仓库开始,到项目开发过程逐一教给你git常用命令操作,你可根据目录阅读自己需要的内容。

(一)git连接GitHub等托管平台

平台账号注册、项目开发为什么要使用代码托管平台这些问题就不再解释说明了,直接上教程。

(1.1)注册gitee账号添加ssh公钥

“gitee是由开源中国推出,…”。现在我们知道gitee是由国内推出的,那就说明它的UI里几乎都是中文。像GitHub、gitlab、gitee等这些托管平台都是大同小异的(注意我们学的是git命令不是托管平台),我们暂且先选一个看着舒服的。

(1.2)生成ssh公钥并添加公钥

注册完账号后随便找个文件夹右键点击Git Brash Here打开git命令窗口。执行cd ~/.ssh切换到.ssh文件夹(没有的话就自己建一个)下。然后直接执行ssh-keygen -t rsa命令(Coding平台有时此方法生成的密钥不能用,那么就在平台设置密钥处点击点此查看SSH公钥使用办法,点击SSH协议使用配置SSH公钥,用它提供的命令生成公钥)。此时文件夹中会生成几个文件(如果里面一开始就有文件那就先把文件删除再执行),用记事本打开**.pub**结尾的文件,里面的内容就是生成的公钥,复制粘贴到gitee指定位置就添加成功了。

(二)进入开发

(2.1)场景一:你是项目组开发成员

开发成员无需考虑搭建项目环境及中央仓库(把本地搭建好的项目环境上传到gitee等代码托管平台)
中央仓库:项目组组长的仓库
远程仓库:你fork项目组组长的仓库到自己的gitee平台上
本地仓库:在你自己电脑上的项目中的.git文件夹中

(2.1.1)克隆中央仓库

找到中央仓库(项目组组长的gitee远程仓库)地址,点击页面的fork,这时自己gitee仓库中就出现了一个一模一样的仓库,并且中央仓库的更新会同步到自己的远程仓库(单向同步),我们称为远程仓库

(2.1.2)新建开发分支(暂时忽略这一步)

在自己fork过来的项目中一般可以看到两个或以上的分支,如:master(主分支,不要动)、dev(用于开发的,开发过程中你可以向这里提交代码)、prod等(如果是维护别人的项目甚至会有v1.0、v2.0等版本分支)。此时你可以在你的远程仓库上新建一个自己的分支(一般自己的远程分支是在第一次提交项目时创建的)。

(2.1.3)拉取代码到本地

当完成了以上gitee平台操作后,就该拉取代码到本地了。

在自己电脑上的workspace新建一个文件夹用于存放项目。

在这个新建文件夹里面打开git控制台。

获取clone地址。点击gitee页面的clone/克隆,选择ssh,复制地址。
(一般为了安全性会选择ssh,也可以选择HTTPS)

执行git clone [ssh地址或HTTPS地址],拉取代码。(不推荐
如:git clone git@e.coding.net:marchsoft/paperless/paperless.git

也可拉取指定分支下的代码(推荐
如:git clone -b dev git@e.coding.net:marchsoft/paperless/paperless.git

(2.1.4)日常开发操作

结束了上一步之后你就成功的拉取到了项目代码到本地,此时不要急于开发,你要先设置好本地开发的分支


开发前要了解的命令

查看本地分支
git branch
查看远程分支
git branch -r
查看所有分支
git branch -a

新建分支(新建dev分支)
git branch dev
切换分支(切换到dev分支)
git checkout dev
新建并切换到该分支(新建并切换到dev分支)
git checkout -b dev
删除分支(删除dev分支)
git branch -d dev
合并分支到当前分支(合并dev分支到当前分支)
git merge dev

删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]


正式开发写业务

本地仓库新建开发分支
git checkout -b dev(这里就直接新建并切换到dev了)
一天工作完后提交代码

  1. 在项目主目录文件夹(包含.git文件夹的那个文件夹)中打开git操控台
  2. 执行git stash save [暂存区名](随便起,提交完就又删除了)
  3. 执行git pull(拉取远程仓库代码)
    保险起见最好执行:
    git pull origin [远程仓库开发分支名]
  4. 执行git stash show显示变更看是否有冲突
  5. 解决冲突(简单看看是否有明显冲突)
  6. 执行git stash pop取出暂存区代码并删除暂存区
  7. 解决冲突(最好运行一遍项目看是否有问题)
  8. 执行git add .
  9. 执行git commit -m "备注信息"提交代码
    如果修改过多commit失败,就执行:
    git commit -am "备注信息"
  10. 执行git push推送到远程仓库
    如果是第一次推送,推送同时要创建远程分支
    git push origin HEAD:[分支名]推送到中央仓库
    git push upstream HEAD:[分支名]推送到远程仓库
    之后就可以直接执行:
    git push origin [已有分支名]

(2.2)场景二:你是项目组组长或个人项目或上传笔记

(2.2.1)在GitHub等平台新建git仓库

具体细节就不展示了,就在托管平台新建个仓库就行,开不开源等权限自己根据实际情况配置。

(2.2.2)拉取仓库到本地

把自己的空仓库拉下来到电脑本地合适的位置就行。

(2.2.3)搭建项目环境

在拉下来的仓库中进行

  1. 设计并建立库表(最好在服务器上搭建)
  2. 根据业务需求选择技术栈
  3. 拉取框架,分模块,简单实现各模块的CRUD接口

  4. 简单说就是根据项目需求自己创建一个跑的通的本地项目。上传时记得导出数据库的SQL文件。

(2.2.4)忽略上传文件

一个gitignore文件,其目的就是上传项目是忽视掉一些文件(如本地环境等)。网上很多模板,随便搜一个简单改改就差不多了。而且在idea上直接新建SpringBoot项目时也会自动生成一个这样的文件在项目目录中。

(2.2.5)上传到中央仓库

走这一步就跟正常提交代码流程一样。
如果你,请参考官方针对这一问题的开源回答

(三)开发提交方案(日常提交直接使用)

还可以通过合并分支来进行提交操作,在此没有列出。

(3.1)方案一

  1. 在项目主目录文件夹(包含.git文件夹的那个文件夹)中打开git操控台
  2. 执行git stash save [暂存区名](随便起,提交完就又删除了)
  3. 执行git pull(拉取远程仓库代码)
    稳妥起见最好用git pull origin [远程仓库的开发分支名]
  4. 执行git stash show显示变更看是否有冲突
  5. 解决冲突
  6. 执行git stash pop取出暂存区代码并删除暂存区
    执行完这一步最好在本地再跑一下项目,看有没有问题
  7. 执行git add .
  8. 执行git commit -m "备注信息"提交代码
    有时改动量大提交不上,并提示已是最新代码
    这时就执行git commit -am "备注信息
  9. 执行git push推送到远程仓库
    如果是第一次推送,推送同时要创建远程分支
    git push origin HEAD:[远程仓库开发分支名]推送到远程仓库
    git push upstream HEAD:[中央仓库开发分支名]推送到中央仓库
    稳妥起见之后也建议用git push origin [远程仓库开发分支]

(3.2)方案二

  1. git add .
  2. git commit -m “xxxxx”
  3. git pull …
  4. 解决冲突
  5. git add .
  6. git commit -m ‘’
  7. git push …

(四)常用命令字典

命令太多了,就不罗里吧嗦了,整点常用的。

(4.1)基本命令

# 从远程库克隆
$ git clone git@github.com:xxx/xxx.git

# 本地仓库初始化
$ git init

# 把一个已有的本地仓库与远程库关联
$ git remote add origin git@github.com:xxx/xxx.git

# 文件添加到暂存区
$ git add <file>		# 添加单个文件
$ git add .				# 添加全部文件

# 把文件提交到本地版本库
$ git commit -m "commit message"	
$ git commit			# 进入VIM编辑器编辑commit message

# 拉去远程库
$ git pull origin master

# 向远程库推送更新
$ git push origin master
$ git push -u origin master		#绑定默认分支,之后可以不带分支名git pull以及git push

# 查看仓库当前状态
$ git status

# 当工作区有改动,暂存区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,暂存区不为空,diff对比的是“工作区与暂存区的共同文件”
$ git diff

# 显示从最近到最远的提交日志
$ git log 				# 查看提交历史记录
$ git log --oneline  		# 以精简模式显示

# 版本退回,会覆盖本地修改的所有代码,慎用
$ git reset --hard HEAD^ 	# 当前版本HEAD,上个版本HEAD^,上上个版本HEAD^^,HEAD~100
$ git reset --hard 130f10a 	# 回退到特定版本

# 查看命令记录
$ git reflog

# 丢弃工作区的修改,回到最近一次git commit或git add时的状态
# 具体分为两种情况:
# 一种是自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
# 一种是经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
$ git checkout -- README.md

# 把暂存区的修改撤销掉(撤销git add)
$ git reset HEAD <file>		# 撤销单个文件
$ git reset HEAD 			# 撤销全部文件

# 把本地仓库的修改撤销掉(撤销git commit)
$ git reset --soft HEAD^	# 将代码回退到暂存区(git add之后)

# 撤销上一次commit
$ git log --oneline			# 查看记录
$ git reset --hard <版本号>	# 回退到相应的版本(注意:--hard 参数会抛弃当前工作区的修改,--soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交)
$ git push origin <分支名> --force # 重新push

# 设置配置
$ git config --global user.name “xxx”   # 设置用户名
$ git config --global user.email “2076202161@qq.com”   # 设置用户邮箱

# 查看配置
$ git config -l  # 查看用户配置信息(所有配置)
$ git config --system --list  # 查看系统配置
$ git config --global --list   # 查看本地配置(当前用户)

# 删除用户配置(手动删除,非git命令)
	# 所有的配置文件都在git的安装目录下。
	Git\etc\gitconfig Git安装目录下的gitconfig。–system系统级
	C:\Users\窦鹏森.gitconfig C盘用户下的.gitconfig。–global用户配置
	删除以上两个文件,则配置就清空了

(4.2)分支操作

# 创建+切换dev分支
$ git checkout -b dev

# 相当于
$ git branch dev 	# 创建分支
$ git checkout dev 	# 切换分支 

# 查看所有分支
$ git branch

# 合并指定分支到当前分支
$ git merge dev

# 删除dev分支
$ git branch -d dev

# 工作区有内容,但需要切换分支
$ git stash				# 保存工作区修改  
# 注意:新增的文件,直接执行stash是不会被存储的,需要git add之后使用stash
$ git checkout master	# 切换分支
$ git checkout dev		# 切换回dev分支继续
$ git stash list		# 查看工作现场列表
$ git stash pop 		# 恢复的同时把stash内容也删了
## 或者使用下列命令
$ git stash apply 		# 恢复,不删除stash的内容
$ git stash drop		# 删除暂存区

# 在错误的分支修改代码
$ git stash
$ git checkout dev
$ git stash pop

# 可以多次stash,恢复时指定恢复
$ git stash apply stash@{0}

# 强行删除一个没有合并过的分支
$ git branch -D <name>

# 要查看远程库的信息
$ git remote
$ git remote -v

# 向远程库推送dev有冲突
$ git pull # 抓取到本地合并解决冲突,再向远程推送
$ git push origin dev

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值