git的学习和使用

  • 一、环境配置
    • 1. 下载git
    • 2. 常用命令
    • 3. 分支管理(超重要)
  • 二、插话
  • 三、从gitlab获取代码
    • 1. 命令行
    • 2. IDEA
    • 3. Vscode
  • 四、合并操作
    • 1. 命令行
    • 2.IDEA
    • 3.vscode
  • 四、目前更新app-dev分支步骤

一、环境配置

1. 下载git

(1)打开git bash
(2)设置签名
(因为提交代码的时候需要显示个人信息,谁提交的)
git config --globla user.name zou
git config --global user.email zou@qq.com

设置好了之后可以查看

(3)git在本地的结构和代码托管中心

本地库与远程库

2. 常用命令

(0)放弃工作区的修改
git restore src/

(0.1)放弃暂存区的修改,工作区保留
git restore --staged src/

(1)查看状态命令git status

(2)工作区提交到暂存区

git add good.txt

(3)从暂存区移出

git rm --cached good.txt //删除单个文件
git rm -r --cached node_modules/    //删除文件夹下的所有文件
//-r 参数的意思是允许递归删除

(4)暂存区提交到本地库

git commit good.txt
//会报一个警告,自动把行末换行字符从LF转换成CRLF
//然后会进入vim编辑器,切换insert模式,然后往第一行输入message,就会备注本次提交的信息
//或者用这个命令可以不进入编辑器,直接输入好备注信息
git commit -m "My first commit" goot.txt

4.1如果commit了一次但是没有push,继续修改好了之后,又想要comiit到本地库但是不想产生两次commit记录,就可以用这个命令,将本次修改内容放到上次commit的记录里面(其实是替换了上次提交)。

//本次的third commit就会放入到second commit的记录中去,
//并且message为third commit
git commit --amend -m "third commit "

(5)从暂存区的同步到工作区

git checkout -- good.txt //就是抛弃工作区的修改,换回暂存区的内容

(6)查看提交的历史信息

git log      //多页的话,空格向下翻页,b向上翻页,q退出

git log --pretty=oneline
或者git log --oneline
或者git reflog    //可以查看回退版本,指针需要退多少个版本,显示的第一个是索引值


(7)版本前进后退

  • 基于索引值操作**【推荐】**
  • 使用^符号(只能后退)
  • 使用~符号(只能后退)
1.基于索引
git reflog
git reset --hard 索引值2.使用^符号
git reset --hard HEAD^  //或者git reset --hard HEAD^^^3.使用~符号
git reset --hard HEAD~n

(8)reset命令的三个参数对比

– soft参数
仅仅在本地库移动HEAD指针
– mixed参数
在本地库移动指针
重置暂存区
– hard 参数
在本地库移动指针
重置暂存区
重置工作区

(9)删除的文件找回
前提:删除前,文件存在时的状态提交到了本地库
操作:

git reset --hard  HEAD 历史记录

(10)比较文件
当工作区的某个文件修改了,想跟暂存区的对比一下,看看修改内容

git diff 文件名     //与暂存区的比较
git diff HEAD  文件名  //与本地库的比较

3. 分支管理(超重要)

(1)分支概述

(2)分支操作

git status           //查看当前所在分支
git branch -v       //查看有哪些分支
git branch dev      //创建分支
git checkout dev    //切换分支=====================================合并分支(最重要的来了来了!!)
//有两个分支,一个master,一个dev。两个本地库版本还是一致的,当我在dev的工作区修改了文件,想要同步给master。
//此时,首先需要将dev工作区的修改先add到暂存区,再commit到本地库,这样才有这条版本更新的记录
第一步:切换到master分支(接收修改的分支上)  git checkout master
第二步:执行merge命令    git merge dev 

(3)解决冲突
当前在hot_mix分支下,修改了good.txt文件的某一行并且提交commit到本地库。
然后在master下,也修改了good,txt文化的同一行并且提交到了本地库。
切换到hot_mix分支,想将master的内容合并过来。

会提示自动合并失败,开始手动解决冲突,完成合并。
这时候就需要vim到good.txt里面,手动解决冲突

解决的方式是将<<<<<<<<<<<<<<HEAD、========、>>>>>>>>>>master这三行删掉,然后看保留哪一分支的内容,保存退出:wq

然后用git add good.txt提交到暂存区,解决冲突
再用git commit -m “resolve confilict” 完成合并 (注意不能写文件名了)

(4)遇到冲突后,需要取消本次合并

git merge --abort

注意
该命令仅仅在合并后导致冲突时才使用。git merge --abort将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未commit的文件,git merge --abort在某些情况下将无法重现合并前的状态。(特别是这些未commit的文件在合并的过程中将会被修改时)

警告:运行git-merge时含有大量的未commit文件很容易让你陷入困境,这将使你在冲突中难以回退。因此非常不鼓励在使用git-merge时存在未commit的文件,建议使用git-stash命令将这些未commit文件暂存起来,并在解决冲突以后使用git stash pop把这些未commit文件还原出来。

二、插话

(1)公司用的是gitlab,首先申请好账号密码,登录上去;
(2)下载Git:https://www.cnblogs.com/wj-1314/p/7993819.html

(3)在gitlab要设置SSH公钥才能下载代码,所以要生成一个ssh公钥;
(4)如何配置SSH?:https://www.jianshu.com/p/bf7b09e234c8
(5)开发工具
我的前端用的是VScode,后端用IDEA,都熟悉一下,命令行方式也最好都记一记;

三、从gitlab获取代码

1. 命令行

(1)cd 到要放项目的文件夹
(2)git clone 项目的网址

2. IDEA

(1)

(2)输入网址,测试一下

(3)项目一般都有一个主线,多个分支,下载到本地后,记得先切换分支,再操作代码(切换在IDEA右下角)

3. Vscode

步骤都差不多,先打开一个文件夹,然后git clone下来然后切换分支就好

四、合并操作

这个弄了一下午,就是首先要搞清楚三点:
(1)主线master和分支branch-app-dev。在切换分支那里可以看到,一份本地的master和dev,一份远程的master和dev;
(2)master保留的是原始的项目代码,也就是纯模型生成的,dev里面是我们自己修改过的代码;
(3)当master更新了,也就是模型重新生成了之后,我们要把更新的master那一次提交commit合并到我们自己写的dev里面(注意注意不要把整个master给合并到dev去了,这样自己写的代码就没了);

============================================
这里主要用的是命令行,开发工具上操作还不太熟悉。

1. 命令行

把master分支提交到dev分支。

首先,切换到master分支,敲 git log 命令,查找需要合并的commit记录,比如commitID:7fcb3defff;

然后,切换到dev分支,使用 git cherry-pick 7fcb3defff 命令,就把该条commit记录合并到了dev分支,这只是在本地合并到了dev分支;

最后,git push 提交到master远程,至此,就把master分支的这条commit所涉及的更改合并到了dev分支。(这步暂时没做,因为还要继续写自定义的代码)

2.IDEA

(1)切换到dev分支
左下角的VersionControll,然后点log,切换查询条件,可以看到最近的master分支的提交记录

然后选中某一条,点这个就可以将那次提交记录,合并到我们当前的dev分支

3.vscode

这个,也是直接切换到dev分支,直接git命令将master给合并过来了。

四、目前更新app-dev分支步骤

dev的合并到app-dev
1.git checkout dev
2.git pull(最好是git fetch + git merge)
3.git checkout branch-app-dev
4.git status检查是否有需要Pull和commit的
5.合并dev分支
6.处理冲突
7.运行检查
8.git push推送到app-dev

从gitlab下载公司项目代码流程(还有git的学习和使用)相关推荐

  1. 项目代码迁移(使用git)

    项目代码迁移(使用git) 克隆老仓库(裸仓库): git clone --bare git@codehub.devcloud.huaweicloud.com:e2f197xxxxxxx19fc4ae ...

  2. Gitlab两个项目代码合并

    Gitlab两个项目之间的合并 目标 目标 因为公司有个项目在gitlab上分成了两个,所以特此记录下gitlab上两个项目合并的过程. 先确定好两个分支 target: A项目dev分支. sour ...

  3. 解决创业型公司项目研发流程的痛点,如何做一个高效的项目团队管理?

    现有项目管理流程痛点 需求管理:由于迭代更新速度较快,需求没有进行有效的管理,即迭代完成后:迭代需求完成情况确认,是否有遗留或流转至下一个迭代再实现 测试管理: 设计测试用例工作的缺失,多少因为需求理 ...

  4. idea项目代码上传git 命令操作 版本回退 warning: LF will be replaced by CRLF in .idea/workspace.xml.

    1.项目根目录右键 选择 Git Bash Here 2..初始化 git init admin@DESKTOP-JQ2K526 MINGW64 /d/workSpaceWork/RSADemo $ ...

  5. 用git来下载github项目代码

    最近要进行课程设计,但是查看代码时想把github的代码下载下来直接导入怎么下载 这就要用到我们的git代码托管了 只需要下载这个git git连接下载 选择一个版本进行下载 选择下面带有时间的进行新 ...

  6. uni-app使用 (从下载到项目启动 流程 踩坑)

    1 脚手架安装 npm install -g @vue/clivue create -p dcloudio/uni-preset-vue unimyproject 2安装启动 报错 sass( 'ad ...

  7. 如何阅读公司项目代码

    个人总结几点关于看代码的心得: \1. 对于基础比较薄弱的同学.最好借助IDE强大的跳转功能进行代码查看 \2. 查看源代码时,第一遍乃至于第二遍一定不能钻的过深,开始的时候往往会因为一个小功能而打开 ...

  8. 国外一个比较不错的“资源” 论坛 --- 可以下载永恒之塔 项目代码

    https://github.com/Aion-server/Aion-unique --->上边打开出现的就是可以下载永恒之塔的代码 转载于:https://www.cnblogs.com/w ...

  9. git gui怎么拉取项目代码_这些Git命令都不会,还是不要去面试了

    前言 以下,项目中经常使用的Git命令,汇总到这里以便与你能快速的学习和掌握Git命令,在文章最后有惊喜哟,一定要看到最后啊! 使用的 Git版本:git version 2.24.0 命令 git ...

最新文章

  1. 脑科学与脑电基础知识汇总
  2. linux怎么远程windows桌面,Windows系统怎么远程登陆桌面Linux?
  3. 如何数据整合IBM Tivoli
  4. logic回归是一种线性回归
  5. C语言Stock span 库存跨度问题(附完整源码)
  6. I00014 汉若塔问题的C++程序
  7. java 张量运算,博客 | Tensorflow_01_运算符与张量值
  8. 暑期训练日志----2018.8.16
  9. 复制中文到linux系统,怎么是的window文字复制到linux下
  10. php主键自增sql语句,sql 自动增长的主键
  11. 系统架构技能之设计模式-抽象工厂模式
  12. 计算机验收标准和验收方法,【超详细】综合布线系统验收标准及内容
  13. 传播路径图调查2013年初
  14. OpenLayers自定义投影,转换OpenLayers中加载的OSM的默认投影坐标
  15. Thinking in Java 11.13 Foreach与迭代器
  16. 如何在C语言中巧用正则表达式
  17. 数据库变为可疑_SQL数据库可疑解决方法
  18. MAX30102 模拟IIC读取程序(C语言)
  19. 免费公共DNS服务器大全
  20. 普通运维人员是秋后的蚂蚱?

热门文章

  1. Sublime Text工具栏隐藏后,怎么重新显现
  2. 兼容PD快充5V-12V高压给两节串联8.4V锂电池1A充电芯片电路图
  3. 转变思考方向,由结果推导原因,找出惯性思维所忽略的地方
  4. B. Numbers on the Chessboard -codeforces1027 -csdn博客
  5. Unable to create process using
  6. 未来,老子云一站式“实景buy”齐常用家居用品
  7. 错别字检查免费计划! CuoBieZi.net
  8. 计算机中的cnc代表什么意思,CNC是什么意思
  9. 声音领域的算法库一般有librosa、essentia、torchaudio、深度学习等
  10. ASEMI代理MIMXRT1064CVJ5B原装现货NXP车规级MIMXRT1064CVJ5B