git常用命令入门

看了一个老师的视频课简单记录一下

Git概念:
git是一个开源的分布式版本控制系统,与SVN类似,但是Git是分布式的,利用分支来操作管理代码。Git的操作一般使用命令,SVN操作一般倾向于可视化界面。

在这里插入图片描述


workspace:工作区
staging area:暂存区/缓存区
local repository:本地仓库/版本库
remote repositoty: 远程仓库

常用命令:
git clone <仓库地址> 拷贝一个
git branch 查看本地和远程仓库分支 -r
git remote add [shortname] [url]关联远程仓库
git fetch 更新 远程代码库
git pull 如果一位同学已经提交了master,那么你就要先pull
git add . 提交暂存区111
git commit -m []到本地仓库222
git push<>到远程仓库333
另外:master是公共分支
输入git log后如果出现没有光标,输入:q 就正常了

面试:
项目中使用git的场景
1,需求开发前的分支拉取流程
2,需求开发后的分支合并流程
3,分支合并出现冲突如何解决
4,出现线上问题时,hotfix分支的操作流程?
实际项目开发中,如何拆分组件也是个很重要的问题,这样可以尽量避免开发中冲突,比如一个页面分为左中右,最后合并就行。
git用终端命令,svn是可视化界面,具体就是四个仓库之间的回传

一.你新建一个仓库 用gitee示例:https://gitee.com/leganoo/gitdemo
二.把当前项目提交到本地仓库: 新建一个仓库,把写好的项目提交
git init 1. 初始化
git add. 2. 提交到缓存区
git commit -m ‘简短描述’ 3. 提交到本地仓库
git status 查看是否全部提交到本地仓库

PS C:\Users\legan\Desktop\123\breath> git init
Initialized empty Git repository in C:/Users/legan/Desktop/123/breath/.git/
PS C:\Users\legan\Desktop\123\breath> git add .
PS C:\Users\legan\Desktop\123\breath> git commit -m '项目初始化'
[master (root-commit) efd2eed] 项目初始化
 7 files changed, 229 insertions(+)
 create mode 100644 .vscode/settings.json
 create mode 100644 animation-tailwind.html
 create mode 100644 breath-tailwind.html
 create mode 100644 tailwind.html
 create mode 100644 "\345\221\274\345\220\270\346\214\211\351\222\256.html"
 create mode 100644 "\345\221\274\345\220\270\346\214\211\351\222\2562.html"
 create mode 100644 "\347\254\254\344\272\214\346\234\237\346\214\211\351\222\256.png"
PS C:\Users\legan\Desktop\123\breath> git status
On branch master
nothing to commit, working tree clean

三.从本地仓库到远程仓库: 关联仓库,把项目推送到远程仓库
git remote add origin 【url】
1.和远程仓库关联起来
git remote -v 查看是否关联上了
git push -u origin ‘master’ 2.push进去并创建分支master (提示:首次输入会提示输入用户名密码,用户名是邮箱)
这样就提交到远程了

PS C:\Users\legan\Desktop\123\breath> git remote add origin https://gitee.com/leganoo/gitdemo.git
PS C:\Users\legan\Desktop\123\breath> git remote -v
origin  https://gitee.com/leganoo/gitdemo.git (fetch)
origin  https://gitee.com/leganoo/gitdemo.git (push)
PS C:\Users\legan\Desktop\123\breath> git push -u origin "master"
remote: [session-994aeaa3] leganoo@163.com: Incorrect username or password (access token)      
fatal: Authentication failed for 'https://gitee.com/leganoo/gitdemo.git/'
PS C:\Users\legan\Desktop\123\breath> git push -u origin "master"
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (10/10), 24.18 KiB | 12.09 MiB/s, done.
Total 10 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/leganoo/gitdemo.git
 * [new branch]      master -> master
branch 'master' set up to track 'origin/master'.

基础结束,接下来解决实际问题
一,新增项目需求时,创建新分支改代码,将新分支合并到master上,并且push到远程仓库
需求评审–代码调研–项目开发–拉取分支dev
git branch 查看本地分支
git branch -r 查看远程分支
git pull 1.对本地代码更新
git checkout -b 【名称】 2. 在本地创建创建分支dev-zhang-0817
git branch 查看 高亮选中的就是我们新建的分支
gitk 显示一个可视化页面 详细显示提交了啥
3.然后进行代码开发,开发完成后
git add . 4. 提交到暂存区 提示:vscode左边三个点的按钮是源代码管理, 可以看下高亮部分就是修改的内容
git commit -m ‘zhang提交’ 5. 提交到本地仓库 文案:zhang提交
git push origin dev-zhang-0817 6. push到远程仓库dev-zhang-0817

PS C:\Users\legan\Desktop\123\breath> git branch
* master
PS C:\Users\legan\Desktop\123\breath> git branch -r
  origin/master
PS C:\Users\legan\Desktop\123\breath> git pull
Already up to date.
PS C:\Users\legan\Desktop\123\breath> git checkout -b 'dev-zhang-0817'
Switched to a new branch 'dev-zhang-0817'
PS C:\Users\legan\Desktop\123\breath> git branch
* dev-zhang-0817
  master
PS C:\Users\legan\Desktop\123\breath> gitk
PS C:\Users\legan\Desktop\123\breath> git add .
PS C:\Users\legan\Desktop\123\breath> git commit -m 'zhang提交'   
[dev-zhang-0817 f482c05] zhang提交
 1 file changed, 1 insertion(+)
PS C:\Users\legan\Desktop\123\breath> git push origin dev-zhang-0817
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 311 bytes | 311.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'dev-zhang-0817' on Gitee by visiting:
remote:     https://gitee.com/leganoo/gitdemo/pull/new/leganoo:dev-zhang-0817...leganoo:master
To https://gitee.com/leganoo/gitdemo.git
 * [new branch]      dev-zhang-0817 -> dev-zhang-0817

OK 需求开发完成后,进行分支合并,将功能从本地分支上合并到master分支上

git branch 查看
git checkout master 7. 切换分支到master,由 master来合并分支
git merge dev-zhang-0817 8.合并到master
git push 仓库名称 分支名称 9.git push origin master 将master重新进行提交

PS C:\Users\legan\Desktop\123\breath> git branch
* dev-zhang-0817
  master
PS C:\Users\legan\Desktop\123\breath> git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
PS C:\Users\legan\Desktop\123\breath> git merge dev-zhang-0817
Updating efd2eed..f482c05
Fast-forward
 "\345\221\274\345\220\270\346\214\211\351\222\2562.html" | 1 +
 1 file changed, 1 insertion(+)
PS C:\Users\legan\Desktop\123\breath> git push origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/leganoo/gitdemo.git
   efd2eed..f482c05  master -> master

二.,假设,有位kevin同学也在开发项目
首先建立Kevin的新分支,提交是一摸一样的步骤
git branch
git config --global user.name ‘kevin’ 设置名字
git checkout -b dev-kevin-0530 新建分支
git branch 有了kevin
新加一段代码后
git add .
git commit -m ‘kevin提交’
git push origin dev-kevin-0530 分支push到远程
git checkout master 到master分支进行合并
git merge dev-kevin-0539 合并时需要切换到master分支,master就有那段代码了
git push origin master 然后kevin将我们的master代码进行提交
Kevin操作开发结束

PS C:\Users\legan\Desktop\123\breath> git config --global user.name 'kevin'
PS C:\Users\legan\Desktop\123\breath> git checkout -b dev-kevin-0530
PS C:\Users\legan\Desktop\123\breath> git branch
  dev-zhang-0817
  master
PS C:\Users\legan\Desktop\123\breath> git add .
PS C:\Users\legan\Desktop\123\breath> git commit -m 'kevin提交'
[dev-kevin-0530 67898ff] kevin提交
 1 file changed, 1 insertion(+)
PS C:\Users\legan\Desktop\123\breath> git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
PS C:\Users\legan\Desktop\123\breath> git branch
  dev-kevin-0530
* master
PS C:\Users\legan\Desktop\123\breath> git merge dev-kevin-0530
Updating 0fe3114..67898ff
 "\345\221\274\345\220\270\346\214\211\351\222\2562.html" | 1 +
PS C:\Users\legan\Desktop\123\breath> git checkout dev-kevin-0530
Switched to branch 'dev-kevin-0530'
PS C:\Users\legan\Desktop\123\breath> git push origin dev-kevin-0530
Enumerating objects: 5, done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 309 bytes | 309.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'dev-kevin-0530' on Gitee by visiting:
remote:     https://gitee.com/leganoo/gitdemo/pull/new/leganoo:dev-kevin-0530...leganoo:master
To https://gitee.com/leganoo/gitdemo.git
 * [new branch]      dev-kevin-0530 -> dev-kevin-0530
PS C:\Users\legan\Desktop\123\breath> git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
PS C:\Users\legan\Desktop\123\breath> git merge dev-kevin-0530
Already up to date.
PS C:\Users\legan\Desktop\123\breath> git push origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/leganoo/gitdemo.git
   0fe3114..67898ff  master -> master
PS C:\Users\legan\Desktop\123\breath> git log
commit 67898ff27acc4fc8a5c01cc903b927757e097ad8 (HEAD -> master, origin/master, origin/dev-kevin-0530, dev-kevin-0530)
Author: kevin <leganoo@163.com>
Date:   Wed Aug 17 17:51:07 2022 +0800

    kevin提交

commit 0fe31143ce470a4bf388172a123a7e99ed0b8352
Author: zhangyue <leganoo@163.com>
Date:   Wed Aug 17 17:40:40 2022 +0800

    zhangceshi5

commit 5f07ebb3e6cf7659d3bd575e28e8045432a87af7 (origin/dev-zhang-0817, dev-zhang-0817)
Author: zhangyue <leganoo@163.com>
Date:   Wed Aug 17 17:11:34 2022 +0800

    zhangceshi4

commit ff2e3732760f44b6029f249f658b80942c739a07
Author: zhangyue <leganoo@163.com>
Date:   Wed Aug 17 17:02:13 2022 +0800
:
到此为止,Kevin开发操作也完成了

多操作几遍就会了
git checkout -b ‘新分支名字’
改变代码
1 git add .
2 git commit -m ‘我提交的’
3 git push origin 新分支名字
4 git checkout master
5 git merge 新分支名字
6 git push origin master
有push两次 ,push需要origin名

三,如何解决分支冲突?这位kevin同学和你一起在开发项目
git config --global user.name ‘zhang’ 1切换回自己
git checkout dev-zhang-0817 切换 每个分支是相互独立的
加新代码
git add .
git commit -m ‘xx’
git push origin xxx 远程推送
git checkout master
git merge dev-zahng-0817
如果有冲突提示,则出现错误,同一个页面,两位同学在修改同一段代码,一般来说。正常流程不会有两位一起开发的,设计流程出了问题,这是最常见的冲突。
沟通,可以选择第三个按钮,以两个都要来解决冲突

在这里插入图片描述

git push origin master

PS C:\Users\legan\Desktop\123\breath> git config --global user.name 'zhangyue'
PS C:\Users\legan\Desktop\123\breath> git checkout dev-zhang-0817
Already on 'dev-zhang-0817'
git: 'add.' is not a git command. See 'git --help'.

        add
PS C:\Users\legan\Desktop\123\breath> git add .
PS C:\Users\legan\Desktop\123\breath> git commit -m 'feat-0818'
 1 file changed, 1 insertion(+)
PS C:\Users\legan\Desktop\123\breath> git push origin dev-zhang-0817
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 294 bytes | 294.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/leganoo/gitdemo.git
   5f07ebb..f9a7295  dev-zhang-0817 -> dev-zhang-0817
PS C:\Users\legan\Desktop\123\breath> git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
PS C:\Users\legan\Desktop\123\breath> git merge dev-zhang-0817
Auto-merging 呼吸按钮2.html
CONFLICT (content): Merge conflict in 呼吸按钮2.html
Automatic merge failed; fix conflicts and then commit the result.
PS C:\Users\legan\Desktop\123\breath> git push origin master
Everything up-to-date
PS C:\Users\legan\Desktop\123\breath> 

四,出现线上问题时,hotfix分支的操作流程?(这个不是很懂,看一遍过)
git checkout -b hotfix-zhang-0818 拉取分支新建分支
修复问题
git add .
git commit -m ‘xx’
git push origin xxx
git checkout master
预发布分支一般叫做uat分支
在网站上,基于master分支再创建一个uat分支
然后需要把hotfix分支合并到预发布分支上,进行上线前的测试

在这里插入图片描述


现在git branch -r 没有uat
git fetch 更新远程仓库 就有uat分支了
现在需要在本地创建uat分支,在本地创建分支还有要关联远程分支
git checkout -b uat origin/uat 关联到本地
git merge hotfix-zhang-0818 合并分支
git push orgin uat 测试完成后,就可以提交
在测试完成后,就可以把uat分支合并到master发布就好了

PS C:\Users\legan\Desktop\123\breath> git checkout -b hotfix-zhang-0818
Switched to a new branch 'hotfix-zhang-0818'
  dev-kevin-0530
  dev-zhang-0817
* hotfix-zhang-0818
  master
  origin/dev-kevin-0530
  origin/dev-zhang-0817
PS C:\Users\legan\Desktop\123\breath> git branch -r
  origin/dev-kevin-0530
  origin/dev-zhang-0817
  origin/master
From https://gitee.com/leganoo/gitdemo
 * [new branch]      uat        -> origin/uat
PS C:\Users\legan\Desktop\123\breath> git checkout -b uat origin/uat
error: you need to resolve your current index first
呼吸按钮2.html: needs merge
PS C:\Users\legan\Desktop\123\breath> git merge hotfix-zhang-0818
error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
PS C:\Users\legan\Desktop\123\breath> git push origin uat
error: src refspec uat does not match any
error: failed to push some refs to 'https://gitee.com/leganoo/gitdemo.git'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340