Git gitee和github 的操作

(没有用过git命令的请先看本地操作,老司机请移步至需要的标题下)

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

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

项目开发好以后,形成版本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 及其基本命令

基本命令:

清屏: clear
新建并打开文件: vi 文件名 按a 可插入,可编辑文件,
保存,按ESC :wq
eg: vi 6.txt
新建文件:touch 文件名 eg: touch test.js
新建文件夹: mkdir 文件夹名

git 步骤:

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

2.初始化生成一个隐藏文件夹: git init

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

初始化后,会出现一个隐藏的文件夹.git,此时代表当前这个文件夹及其以下内容都被git管理了

3.查看当前仓库状态: git status


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

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

4.添加工作区文件到暂存区: git add 1.txt
存放单个文件:
git add 文件名称
git add 文件夹名称
存放所有文件:
git add --all
git add .

绿色表示文件在暂存区

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

拖出单个文件:git reset HEAD -- 文件名
拖出单个文件夹:git reset HEAD -- 文件夹名
拖出所有文件: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 复制的地址 新的名字

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

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

  1. 对本地仓库里东西进行修改之后:
    查看状态: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 远程地址

  1. 对仓库里东西进行修改之后:
    进入文件夹 : 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 复制的地址 新的名字

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

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

会弹出

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

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

结果


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

  1. 对本地仓库里东西进行修改之后:
    查看状态: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 远程地址

  1. 对仓库里东西进行修改之后:
    进入文件夹 : 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保存并退出
本地文件夹就同步了

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

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

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

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

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

冲突

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

冲突解决:

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

git pull

然后手动解决文件冲突
  1. 开辟新的分支,然后进行分支合并

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

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

如果本地当前是在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组件库
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容