git基础教学

Git安装配置

Git的下载地址:点我下载

下载的时候注意 保存的地址 ,其他的基本上一路确定就可以,完成安装后在任意一个文件夹的空白处右键(更多选项)会出现:
在这里插入图片描述
选择一个你想要的文件夹做为代码仓库,右键-更多选项后,点开 Git Bash
在这里插入图片描述

输入下面的内容完成用户信息配置

$ git config --global user.name "用户名"
git config --global user.name "lkj"
$ git config --global user.email 邮箱
git config --global user.email 787930581@qq.com

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里

使用下面的指令来查看当前用户信息

git config --list

在这里插入图片描述
其他本地仓库必须推送其他分支才能推入到同一个远程仓库

快速上手

第一周任务:初始化仓库

1.在自己的电脑上安装Git,并配置好用户名、邮箱等
2.创建一个文件夹,初始化一个本地仓库
3.完成项目题的基础功能(加密、解密),将代码文件保存在文件夹中
4.将代码文件添加到本地仓库,并进行一次有意义的提交(commit),并查看当前仓库的状态

提交检查的内容:请将每个任务点完成过程详细地截图

第二周任务: 实现对远程仓库的基本操作:
1.在Gitee上注册一个账号,并创建一个空的远程仓库
2.在代码文件中随意添加一行注释,添加到本地仓库;撤销本次添加(reset),并丢弃(checkout)工作区的修改,使代码恢复到修改前

3.重新修改代码文件,将每个功能补充完整注释,添加后提交
4.将本地仓库与远程仓库关联(remote),并推送本地提交到远程仓库

第三周任务:合并分支
1.在本地仓库中,创建一个新的分支,命名为dev,查看所有分支
2.切换到dev分支,在代码文件中添加新的功能(判断密码强度、密码生成)
3.提交修改到dev分支,并查看历史操作的记录(log)
4.切换回master分支,将dev分支合并到master分支,合并成功后删除dev分支,并提交

第四周任务:暂存工作区
1.修改代码内容使其无法正常运行,使用stash命令暂存未提交的修改,切换到新分支bugfix
2.在新分支bugfix上将暂存区的内容应用到工作区,修复bug,切换回原来的分支,合并分支
3.使用reflog命令查看并找到第三周任务最后一次正常提交的记录
4.回退(reset)到第三周最后一次正常提交的状态

git 核心理念

Git有三个核心区域,它们分别是工作区(Working Directory)、暂存区(Staging Area)和版本库(Repository)。

工作区(Working Directory):是可以直接编辑的地方。
暂存区(Stage/Index):数据暂时存放的区域。
版本库(commit History):存放已经提交的数据。
工作区的文件 git add 后到暂存区,暂存区的文件 git commit 后到版本库。

仓库操作

创建仓库

右键文件夹,点击 更多选项 - Git Bash
输入下面命令来初始化

git init

或者选定一个目录作为仓库

git init 名字

初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

之后它就作为一个仓库了,我们可以从其他仓库进行克隆

仓库克隆

git clone [url]

这个url 指的是 远程仓库 的地址,比如:

git clone git@gitee.com:jojoikun/test.git

这样做是克隆 远程仓库 的所有内容到本地仓库中来

删除文件

1.直接在工作区删除(本地仓库),并且将这次删除放入暂存区

 git rm (文件)

2.工作区和暂存区删除(本地仓库),并且将这次删除放入暂存区

git rm -f

把本地内容推入远程仓库

首先:本地仓库关联远程仓库

 git remote  add origin (远程仓库名字)
 git remote  add origin https://gitee.com/xxxxx/vue-project.git

将远程仓库的地址添加到本地 Git 仓库中,并将其命名为 origin。之后,你就可以使用 git push 和 git pull 等命令与远程仓库进行交互了。

先执行下面两个命令
1.把文件放入暂存区 (.代表全部文件,也可以是单个文件,即只放一个在暂存区)

git add .

2.进行一次提交(必须要写注释)

git commit -m "注释"

3.更简单的方法推入远程仓库(会建立一个主分支,只有该本地仓库可以使用这个分支)

git push (HTTPS/SSH地址)

将本地内容推送到远程仓库(第一次) 推送分支

git push -u origin(远程库的名字,默认为origin) (分支名字)

参数u代表关联远程分支
将本地内容推送到远程仓库(之后)

git push origin(远程库的名字,默认为origin) (分支名字)

只有主分支为这个代码仓库的,才可以用(否则要创建新的分支)

如果远程仓库的分支名相同,先拉去上游分支

git push --set-upstream origin master

分支命令

创建并切换到 (分支名字) 分支上

git checkout -b (分支名字)

在这里插入图片描述
在这里插入图片描述
这样做,Gitee会出现一个新的分支
在这里插入图片描述
创建新的分支(分支名字)

 git branch (分支名字)	

查看当前分支

git branch

在这里插入图片描述
切换分支

git checkout dev(分支名字)

删除dev分支

 git branch -d (分支名字)	

在这里插入图片描述
合并分支

git merge  (分支名字)(--no-ff)(-m)  

合并,把dev分支的工作成果合并到master分支上

查看远程库的名字

git remote

在这里插入图片描述

查看git使用记录和提交的索引

git log
git reflog

在这里插入图片描述
前面黄色的值就是索引

git 回退到索引之前的状态

如果你想回退到索引为 847b066 的提交状态,可以使用以下命令:

git reset --hard 847b066

同步远程仓库

git fetch

当我们需要在本地仓库中修改代码并同的时候使用

同步本地仓库(本地删除分支)同步到远程仓库

git push origin :branch_name(删除的分支名字)

fork的使用,与他人协作修改代码

fork的功能是你修改他人的代码,你可以给他人加入或修改代码,要通过他人的同意

1.进入他人的代码仓库(用别人给你的Http地址)-点击forked
在这里插入图片描述
2.fork后会出现一个新的仓库,这个仓库下面会显示fork自他人
在这里插入图片描述
3.复制这个仓库的http地址,和以前的一样进行推送.
在这里插入图片描述
4.点击pull Request
在这里插入图片描述
5.点击新建pull Request
在这里插入图片描述
6.提交申请
在这里插入图片描述
7.之后他人会受到一条通知,他通过了你的修改就会在他的仓库中生效了
在这里插入图片描述

Gitee 的使用

进入Gitee官网:点击进入
进行正常的注册,登录

建立远程仓库Giree

按照图片,点击 “+” 号 - 新建仓库
在这里插入图片描述

输入 文件名,路径, 点击 创建
在这里插入图片描述

完成
在这里插入图片描述

本地仓库关联远程仓库

配置ssh公钥,输入(填写注册时的邮箱)

ssh-keygen -t rsa -C "youxiang@qq.com"

之后回车三次(有几个是密码,可以选择不输入),会返回
在这里插入图片描述

查看公钥输入

 cat ~/.ssh/id_rsa.pub

返回:
在这里插入图片描述
复制这个公钥,进入 SSH公钥设置
在这里插入图片描述

在这里插入图片描述

标题随便取一个,把公钥复制过去,这样做,你会得到一个邮件(说明你以成功连接)
最后,输入

$ ssh -T git@gitee.com

得到返回就说明成功连接了
在这里插入图片描述
我们可以推入内容了

git push --set-upstream (url) (分支名) (第一次使用,创建一个主分支)
git push (url)(分支名,默认为master,第一次一定要加)

只有主分支为这个代码仓库的,才可以用(否则要创建新的分支)

fork关联别人的仓库,把代码提交给别人

GIthub 的使用

进入Github:点我进入
先进行正常的注册登录

创建远程仓库

然后点击右上角的 + 号 - New repository
在这里插入图片描述
输入项目名,创建就行
在这里插入图片描述
复制HTTPS/SSH地址
在这里插入图片描述

本地仓库关联远程仓库

本地仓库连接远程仓库看上面的就行

ID/PY 关联 Gitee

创建本地仓库

在这里插入图片描述

点击确定就行

在这里插入图片描述

(文件变成金色了) - 点击 管理远程
在这里插入图片描述

在这里插入图片描述

连接远程仓库Gitee

去远程仓库中复制SSH地址

在这里插入图片描述

在这里插入图片描述
确定后即可,之后上面会出现一个 Git
提交 对应 add。推送 对应 commit+push
在这里插入图片描述
在这里插入图片描述
提交并推送后就可以在代码仓库中找到了
在这里插入图片描述

Vscode 关联 Gitee

直接把带有连接仓库的本地仓库用 Vscode 打开
1.点击 源代码管理
建立或更改一个文件,我们会发现 红框处会多一个1
在这里插入图片描述
点击红框处,+ 号代表着把文件放入暂存区
在这里插入图片描述
之后点击提交
在这里插入图片描述

在这里写注释必须写(对应 commit -m “注释” )
在这里插入图片描述
完成后是成功提交到了本地仓库,点击这两个都是提交到远程仓库

在这里插入图片描述
点击 确定
在这里插入图片描述
成功
在这里插入图片描述

git中可能出现的问题

You have unmerged paths.

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add/rm <file>..." as appropriate to mark resolution)
        deleted by them: question1.java翻译这个

未合并的文件路径冲突。(两个分支中有同样的文件)
确定你希望保留哪个版本的 “question1.java” 文件内容:本地分支的修改还是其他分支的删除。

如果你选择保留其他分支的删除操作,可以使用以下命令将删除操作标记为已解决:

 git rm question1.java

如果你选择保留本地分支(本地仓库)的修改,可以使用以下命令将冲突文件标记为已解决:

git add question1.java

在处理完所有冲突文件后,运行以下命令进行提交:

git commit -m "Resolve conflicts"

(上传时) The current branch master has no upstream branch.

如果本地分支名远程分支名一样的话,第一次推送要先关联分支(和关联仓库差不多)
即当前分支没有和远程分支关联(没有上游分支),使用下面 命令来关联分支:

git push --set-upstream origin master(分支名)

第一次输入就可以,之后可以不必输入

  1. 如果你希望在将来的推送中不必再次使用 --set-upstream 标志,可以配置 Git 以自动设置上游分支。你可以运行以下命令:
git config --global push.default current

(上传时)git ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘xxx’

当想把一个文件从一个新的本地仓库放到远程仓库时
出现这个问题的最主要原因,是本地仓库和远程仓库实际上是独立的两个仓库,假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。
1.先关联仓库

git remote add origin (远程仓库地址)

2.输入下面的指令,这样你就会克隆远程仓库并获得同步

git pull origin master --allow-unrelated-histories

3.直接推送就可以

git push ((远程仓库地址)

(上传时)! [rejected] master -> master (non-fast-forward)

出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

1、强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容,如果远程仓库是刚建的,没有代码,可以这样操作,尽量避免这种操作方法。

git push -f

2、先把git的东西fetch到你本地然后merge后再push

$ git fetch
$ git merge

3、在使用的时候,git merge,又出现了以下的问题

xu:QProj xiaokai$ git merge
fatal: refusing to merge unrelated histories

对于这个问题。使用git pull origin master --allow-unrelated-histories
来处理一下。

4、然后继续git merge,依然有问题

fatal: You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you merge.

这个就好处理了,是我们没有提交当前的变化, git add .,git commit -am “提交信息”

然后再来一次git merge,然后ok.

5、然后输入git pull,显示如下

Already up-to-date.

最后就可以执行

xu:QProj xiaokai$ git push origin master

(上传时)warning: in the working copy of ‘xxx.vue‘, LF will be replaced by CRLF the next time Git touc

翻译:警告:在 ‘src/xxx.vue’ 的工作副本中,下次 Git 遇到 LF 时,LF 将被 CRLF 替换。

CR为回车符,LF为换行符。Windows结束一行用CRLF,Mac和Linux用LF。

core.autocrlf

false表示取消自动转换功能 -> 适合纯Windows

true表示提交代码时 把CRLF转换成LF,检出时LF转换成CRLF -> 适合多平台协作

input 表示提交时 把CRLF转换成LF,检出时不转换 -> 适合纯Linux或Mac

比如都是使用window系统进行协作,就可以输入

git config --global core.autocrlf true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值