Git gitLab gitee和github的操作处理

没有用过git命令的请先看本地操作, 解决问题直接找目录

目录

git 逻辑分解

git常用命令

本地使用git

git 步骤:

远程仓库

码云 gitee 操作

初始过化的仓库

没有初始过化的仓库

新的电脑或新文件夹需要拉取仓库文件

GitHub 操作

初始过化的仓库

没有初始过化的仓库

新的电脑或新文件夹需要拉取仓库文件

创建仓库的电脑拉取操作仓库文件

操作分支

版本操作

冲突

添加本地已有文件到仓库


在实际工作中,我们会遇到很多无法预料的问题:

问题一:频繁改需求。例:

项目开发好以后,形成版本v1.0
需求改变:
在v1.0的基础上添加功能A,形成版本v1.1 - 在上个版本的基础上添加功能A
在v1.0的基础上添加功能B,形成版本v1.2 - 在上个版本的基础上删除功能A,添加功能B
在v1.1的基础上添加功能C,形成版本v1.3 - 在上个版本的基础上删除功能B,添加功能A,再添加功能C
在v1.2的基础上添加功能D,形成版本v1.4 - 上个版本的基础上删除功能A,删除功能C,添加功能B,添加功能D

git可以完美解决这个删除添加的过程。因为git可以将每个版本保存下来,可以很轻松的将当前版本切换到之前的某个版本。

问题二:一不小心将文件删除了,还需要重新写。

使用git的话,如果将某个文件删除,形成新的版本,也可以很轻松的切换到之前的版本,将删除的文件找回来。

问题三:在当前电脑开发好的内容,换了一台电脑,发现代码还需要重新写

使用git的话,将每次写好的代码,上传到github网站,只要有网就能下载,相当于备份

问题四:工作中每个人写好的文件最后需要合并到一个大文件中,需要很繁琐的复制粘贴

使用git可以很轻松的进行文件合并

git 逻辑分解

Git的工作流程基于工作区、暂存区和版本库 

代码的修改全部在工作区, 暂存区存放准备提交的文件,版本库则存储了所有的版本信息‌

  1. 工作区(Working Directory)‌:
    想象你正在自己的书房里写一本小说(这就是你的工作区)。你有一个文件夹,里面放着你正在编辑的章节文件。你可以自由地在这个文件夹里添加、删除或修改文件,就像你在书房里随意翻动书页、写下新想法或划掉旧句子一样。在Git中,工作区就是你当前正在编辑和修改文件的地方。

  2. 暂存区(Staging Area)‌:
    现在,你决定要把今天写好的章节提交给你的出版商(这相当于Git中的提交操作)。但在提交之前,你想先整理一下,把确定要提交的章节放在一起。于是,你在书房里找了一个篮子(这就是暂存区),把今天写好的、确定要提交的章节文件放进去。在Git中,暂存区就是一个临时存放你准备提交的文件修改的地方。使用“git add”命令,你可以将工作区中的文件修改添加到暂存区。

  3. 版本库(Repository)‌:
    最后,当你把篮子里的章节文件整理好后,你把它们打包成一个包裹(这相当于Git中的一个提交或commit),然后寄给出版商(这相当于推送到远程仓库)。出版商收到你的包裹后,会把它存放在他们的仓库里(这就是版本库)。在Git中,版本库是一个存储所有版本信息、提交记录和文件修改历史的地方。每次你提交到版本库,都会生成一个新的版本,你可以随时查看、回滚或合并这些版本。

git常用命令

git init                                                       //  初始化仓库
git add 文件                                              // 文件放入暂存区
git add --all / git add .                               // 存放所有文件
git commit -m "提交信息"                          // 将暂存区的代码提交到仓库
git remote add origin 远程仓库地址          // 添加远程仓库
git push -u origin master                           // 推送本地仓库到远程仓库
git pull origin master                                  // 拉取远程仓库到本地仓库
git clone 仓库地址                                     // 克隆远程仓库到本地
git reset HEAD -- .                                    // 将暂存区的代码拖出工作区
git reset HEAD -- 文件                              // 拖出单个文件
git checkout -- 文件                                  // 丢弃工作区的修改

分支
git branch 分支名                                      // 创建分支
git checkout 分支名                                   // 切换分支
git merge 分支名                                      // 合并分支
git branch -d 分支名                                 // 删除分支
git branch -D 分支名                                 // 强制删除分支
git branch -m 旧分支名 新分支名                // 重命名分支
查看
git status                                                    // 查看当前仓库状态
git log                                                        // 查看提交历史
git branch -a                                              // 查看所有分支
git diff 文件                                                // 查看文件修改内容
git blame 文件                                            // 查看文件历史记录
git show 版本号                                        // 查看版本号详细信息
git reflog                                                   // 查看所有命令历史记录
设置
git config --global user.name "用户名"      // 设置用户名
git config --global user.email "邮箱"         // 设置邮箱

本地使用git

git 步骤:

1. 在一个空文件夹里右键选择: Git Bash Here  出现命令框

2. 输入初始化命令:

git init

初始化一个空的Git仓库在文件夹下

初始化后,会生成一个隐藏的文件夹(需要在文件夹设置查看隐藏文件) .git 文件夹,

此时代表当前这个文件夹及其以下内容都被git管理了

3.查看当前仓库状态:

git status

隐藏文件夹同级目录下建立新的文件,工作区代码红色

文件名标红表示文件在工作区

4.添加工作区文件到暂存区:

git add 1.txt

// 存放单个文件:
git add 文件名称 // git add 1.txt
git add 文件夹名称  // git add test
// 存放所有文件:
git add --all
git add .

文件名标绿表示文件在工作区

暂存区的代码放到工作区: 

// 将暂存区的代码拖出工作区: 
git reset HEAD -- .

// 拖出单个文件: 
git reset HEAD -- 文件名    // git reset HEAD -- 1.txt

// 拖出单个文件夹:
git reset HEAD -- 文件夹名    // git reset HEAD -- test

// 拖出所有文件:
git reset HEAD -- .

5.将暂存区的代码放到历史区:  

git commit -m "新建的1"    // 提交代码
git commit -m "版本描述"    

工作区空,放入历史区成功,不显示


添加所有文件到暂存区


6.版本信息相关:

查看版本信息

git log

有的git在提交的时候需要输入自己的邮箱和名字 - 需要执行两行命令

git config --global user.name '名字'
git config --global user.email '邮箱'

 commit 后是版本号

// 回到上一个版本:
git reset --hard HEAD^

// 有几个上档键就回退几个版本: 
git reset --hard HEAD^

// 查看有哪些版本:
git log

// 回到指定版本: 
git reset --hard 版本号

回到上一个版本


 

.git隐藏文件夹里面的 logs/HEAD 文件中找版本号

git不能管理空文件夹,git提供了一个文件,专门用来占位,需要在编辑器里新建文件:.gitkeep

git在管理仓库中文件的时候,会忽略在.git文件夹所在目录创建一个文件:.gitignore 文件里直接写路径

远程仓库

码云 gitee 操作

登录码云 新建一个仓库

新建仓库

仓库配置

是否需要初始化: 
没有东西,建一个仓库放东西,请初始化仓库

自己写了很多文件及文件夹,可选不初始化仓库


初始过化的仓库

1. 复制仓库地址:

复制地址

在新文件夹里,鼠标右击选择 Git Bash Here
将初始化过的远程仓库克隆下来:  git clone 复制的地址 
可直接重命名: git clone 复制的地址 新的名字

2. 进入从线上克隆下来的文件夹:` cd ants`

此时远程仓库与本地仓库已经联立
使用上传文件:

git push

3. 对本地仓库里东西进行修改之后: 
  查看状态:

git status

将所有改变的文件放入暂存区: 

git add .

文件放入历史区,形成版本:

git commit -m "测试"

提交文件:

git push

 完成!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

没有初始过化的仓库

1.在文件夹里,鼠标右击选择 Git Bash Here 
Git 全局设置:
git config --global user.name "用户名"
git config --global user.email "邮箱"

2.创建 git 仓库: 已有文件直接在文件中进行文件夹初始化

创建文件夹作为仓库(chicken为我自定义的名字):   mkdir chicken   

进入文件夹:  cd chicken 

文件夹初始化(变为本地仓库):   git init  

创建文件(作为例子,可省略):  touch README.md 

文件放入暂存区:  git add README.md 

提交文件:  git commit -m "first commit" 

请求远程地址:   git remote add origin 仓库地址

推送内容到远程仓库的master分支:   git push -u origin master

会弹出

输入账号密码
账号可从 gitee 中头像 ====> 设置 ====> 多邮箱管理 ====> 主邮箱
密码为邮箱密码 

此时账号密码可能出错,如果没有用过 gitee 的不会出现此问题
解决方法:
找到控制面板 ====> 用户账户====> 凭

据管理器 ====> Windows凭据 ====> 删除gitee存的账号密码

完成!!!!!!!!!!!!!!!!!!!!

新的电脑或新文件夹需要拉取仓库文件

1.在新文件夹里,鼠标右击选择 Git Bash Here 
将远程仓库克隆下来:  git clone 远程地址

2. 对仓库里东西进行修改之后: 
进入文件夹 : cd chicken
进入仓库代码最后会有 (master) 的标志

查看仓库状态:  git status
 

将所有改变的文件放入暂存区:  git add .

文件放入历史区,形成版本: git commit -m "测试"

提交文件:  git push 
会弹出

输入账号密码
账号可从 gitee 中头像 ====> 设置 ====> 多邮箱管理 ====> 主邮箱
密码为邮箱密码 

此时账号密码可能出错,如果没有用过 gitee 的不会出现此问题
解决方法:
找到控制面板 ====> 用户账户====> 凭据管理器 ====> Windows凭据 ====> 删除gitee存的账号密码

 完成!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

##创建仓库的电脑拉取操作仓库文件
此时创建仓库的电脑(下面称为小A电脑)有两个版本,且提交了两个版本

新电脑(克隆内容的电脑或文件夹,下面称为小B电脑)有一个版本,且提交了一个版本

远程仓库为三个版本

小A电脑的仓库与远程仓库不同步,需要同步

在小A电脑仓库里(即 拥有 .git 的文件夹里)
鼠标右击选择 Git Bash Here 
拉取仓库内容: git pull

修改仓库内容后

将所有改变的文件放入暂存区:  git add .

文件放入历史区,形成版本: git commit -m "版本号"

提交文件:  git push 

GitHub 操作

登录GitHub 新建一个仓库


初始过化的仓库

1. 复制仓库地址:


在新文件夹里,鼠标右击选择 Git Bash Here
将初始化过的远程仓库克隆下来: git clone 复制的地址
可直接重命名git clone 复制的地址 新的名字

2. 进入从线上克隆下来的文件夹:` cd butterfly`
进入仓库标志最后面有(main)


此时远程仓库与本地仓库已经联立
使用上传文件: git push


会弹出


输入账号密码
账号可从 GitHub 中头像 ====> Setting ====> emails ====> Primary email address ====> save
密码为邮箱密码 

此时账号密码可能出错,如果没有用过 gitee 的不会出现此问题
解决方法:
找到控制面板 ====> 用户账户====> 凭据管理器 ====> Windows凭据 ====> 删除gitee存的账号密码

结果

完成!!!!!!!!!!!!!!!!!!!!


3. 对本地仓库里东西进行修改之后: 
  查看状态: git status

将所有改变的文件放入暂存区: git add .
文件放入历史区,形成版本: git commit -m "测试"
提交文件: git push

 完成!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

没有初始过化的仓库

1.在新文件夹里,鼠标右击选择 Git Bash Here 

2.创建 git 仓库:已有文件直接在文件中进行文件夹初始化

创建文件夹作为仓库(chicken为我自定义的名字):   mkdir chicken   

进入文件夹:  cd chicken 

文件夹初始化(变为本地仓库):   git init  

创建文件(例子,可省略):  touch README.md 

文件放入暂存区:  git add README.md 

提交文件:  git commit -m "first commit" 

推送至 main 分支: git branch -M main

请求远程地址:   git remote add origin 仓库地址


推送内容到远程仓库的master分支:   git push -u origin main
会弹出

输入账号密码
账号可从 gitee 中头像 ====> 设置 ====> 多邮箱管理 ====> 主邮箱
密码为邮箱密码 

此时账号密码可能出错,如果没有用过 gitee 的不会出现此问题
解决方法:
找到控制面板 ====> 用户账户====> 凭据管理器 ====> Windows凭据 ====> 删除gitee存的账号密码

完成!!!!!!!!!!!!!!!!!!!!

新的电脑或新文件夹需要拉取仓库文件

1.在新文件夹里,鼠标右击选择 Git Bash Here 
将远程仓库克隆下来:  git clone 远程地址

2. 对仓库里东西进行修改之后: 
进入文件夹 : cd chicken
进入仓库代码最后会有 (master) 的标志

查看仓库状态:  git status
 

将所有改变的文件放入暂存区:  git add .

文件放入历史区,形成版本: git commit -m "测试"

提交文件:  git push 

 完成!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

创建仓库的电脑拉取操作仓库文件

此时创建仓库的电脑(下面称为小A电脑)有两个版本,且提交了两个版本

新电脑(克隆内容的电脑或文件夹,下面称为小B电脑)有一个版本,且提交了一个版本

远程仓库为三个版本

小A电脑的仓库与远程仓库不同步,需要同步

在小A电脑仓库里(即 拥有 .git 的文件夹里)
鼠标右击选择 Git Bash Here 
拉取仓库内容: git pull

修改仓库内容后

将所有改变的文件放入暂存区:  git add .

文件放入历史区,形成版本: git commit -m "版本号"

提交文件:  git push 

操作分支

1.查看有所有分支:  git branch

2.创建分支: git branch 分支名

3.切换分支: git checkout 分支名

(master) 变为(ants_1)切换成功

4.创建并切换分支: git checkout -b 分支名

5.合并分支:把写的分支内容复制到主分支,主分支增加,原来分支不变: git merge 分支名

6.删除分支:一般不删master分支,在分支下不能删自己,即在有(ants_1)的文件中不能删ants_1分支,可以在(master)下删ants_1分支
 删除本地已合并的分支: git branch -d [branchname]

某些情况下可以用 git branch -D [branchName] (使用时应注意是否已合并), 提示删除了一个名为list的本地分支

删除远程分支: git push origin --delete [branchname]
提示删除了一个名为 201804019-test-files 的分支,
注意: 在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支

7.上传文件到分支: git push --set-upstream origin source

版本操作

1.查看版本:git log

2.查看文件: ls

3.本地文件同步: git pull 地址 分支名
弹出一个编辑文件页面,不用编辑 使用`:wq`保存并退出
本地文件夹就同步了

4. 对仓库里东西进行修改之后: 
  

将所有改变的文件放入暂存区: git add .

创建其他分支提交文件(只用第一次提交): git push --set-upstream origin 分支名

5.删除无用文件夹: rm -rf project/

查看仓库内所有文件夹及文件:`ls`

冲突

两个人同时操作同一个分支,提交的时候会有先后顺序,先提交的人正常提交了,后一个人提交的时候会产生冲突。因为git规定,每次提交必须是在原来的版本基础上,但是第二个人在提交的时候,在远程已经有了第二个版本,所以第二个人相当于从第一个版本向第三个版本提交。

冲突解决:

1.  使用命令让本地和远程同步:

git pull

    然后手动解决文件冲突

2.  开辟新的分支,然后进行分支合并

git fetch origin master:tmp # 使用 fetch 获取远程最新信息并开辟一个临时分支
git diff tmp # 将当前分支和远程分支进行对比
git merge tmp # 将临时分支合并到当前分支

添加本地已有文件到仓库

远程不管有什么,我现在就想把我的一个文件夹里的东西放到远程的分支,该咋办呢???

首先本地已有的文件不可以合并到任何一个分支, 哪怕代码是一模一样的,
只能把本地分支作为新分支传到仓库里

1.建立本地仓库

查看当前项目根目录中有没有 .git文件(隐藏文件),如果没有,右键 => Git bash here ,然后输入命令git init建立本地仓库,如果有的话,删掉,一切从头开始,没得商量
git init
2.将代码提交到本地仓库
git add .

git commit -m "new branch commit"
3.在本地仓库中建立一个与远程仓库的别名,以便之后提交代码而不是每次都要输入远程仓库地址。指令结尾是git的仓库地址
git remote add origin git@XX.XX.XX.12:gyjia/hotcodeserver.git
4.注意: 这里要把本地的代码提交的远程仓库上了,步骤如下

首先要建立本地的分支,并切换到该分支上(本地建立完分支,默认是在master分支上)
git branch new_branch

git checkout new_branch
push到远程仓库上面

git push origin new_branch
到你的远程仓库看一哈子,这是不是你想要的样子 _!@!@!_

master分支与new_branch分支合并

如果本地当前是在new_branch分支上面,此时想把远程仓库的master与我的new_branch分支合并(merge),可以使用如下命令:

git pull origin new_branch:master

如果线上分支已经提交多版, 本地分支未与线上分支同步
用上述合并代码出现无新代码或者报错使用以下代码 允许之前的历史记录合并到新分支

git pull origin master --allow-unrelated-histories

会自动克隆该分支在本地,克隆后本地只有这一个分支。

// 克隆下来的仓库名默认为远程仓库名
git clone -b <指定分支名> <远程仓库地址>
git clone -b antd组件库 https://gitee.com/wozuisuai.git

// 可以直接以组件库名字命名克隆下来的仓库
git clone -b <指定分支名> <远程仓库地址> <指定分支名>
git clone -b antd组件库 https://gitee.com/wozuisuai.git antd组件库


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值