Git的使用

Git

1.版本控制

用来进行版本迭代。下面学习主流的版本控制器Git。
Git是目前世界上最先进的分布式版本控制系统。

2.Git环境配置

打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本。
所有东西下载慢的话就可以去找镜像!
官网下载太慢,我们可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/
在这里插入图片描述

3.启动Git

安装成功后在开始菜单中会有Git项,菜单下有3个程序:任意文件夹下右键也可以看到对应的程序!

  • Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多(清屏的命令clear)
  • Git CMD:Windows风格的命令行(清屏的命令cls)
  • Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

4.常用的Linux命令

1)、cd : 改变目录。

2)、cd . . 回退到上一个目录,直接cd进入默认目录

3)、pwd : 显示当前所在的目录路径。

4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
白色代表是文件,绿色代表是程序,紫色代表是目录。
5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。

6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。

7)、mkdir: 新建一个目录,就是新建一个文件夹。

8)、rm -r : 删除一个文件夹, rm -r src 删除src目录

rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

10)、reset 重新初始化终端/清屏。

11)、clear 清屏。

12)、history 查看命令历史。

13)、help 帮助。

14)、exit 退出。

15)、#表示注释

5.Git配置

git config -l

在这里插入图片描述
查看不同级别的配置文件:

#查看系统config
git config --system --list
  
#查看当前用户(global)配置
git config --global  --list

在这里插入图片描述

  • Git相关的配置文件:
    1)、Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级
    2)、C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局

1.配置用户名(提交时会引用)
git config --global user.name “你的用户名”
eg.git config --global user.name “yyy”
这里的用户名自定义,和你自己的GitHub没有任何关系。
2.配置邮箱
git config --global user.email “你的邮箱”
eg.git config --global user.email “49xxxxxxx@qq.com”
这里的邮箱也自己配置,和你自己的GitHub没有任何关系。
3.编码配置
避免git gui中的中文乱码
git config --global gui.encoding utf-8
避免 git status显示的中文文件名乱码
git config --global core.quotepath off
4.其他
git config --global core.ignorecase false

配置完成之后显示:
在这里插入图片描述

6.Git基本理论

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
在这里插入图片描述
可以使用git log命令显示从最近到最远的提交日志,红色框框住的是commit id(版本号)
在这里插入图片描述

6.0 git 一次性添加多个文件

背景:当修改了多个文件,需要逐个添加文件到暂存区,有点繁琐。

  • 文件之间用空格隔开git add file01 file02 file03

  • 加参数
    git add . : 添加被修改的和新建的文件,不包括被删除的文件;
    git add -u: 添加所有被修改的和被删除的文件(已经在暂存区的文件),不包括新建的文件;
    git add -A: 添加被修改、被删除、新建的文件(即所有文件);

  • 添加指定目录下的某类文件
    git folder/*: 添加该文件夹下的所有文件
    git folder/*.js: 添加该文件夹下的js文件

6.1 版本回退

在Git中,用HEAD表示当前版本,也就是最新的提交1094adb…(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^ ,上上一个版本就是HEAD^^ ,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
问题:回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
回答:在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令。

总结

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

6.2 撤销修改

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

git checkout -- file可以丢弃工作区的修改。

7.使用GitHub或Gitee

首先在GitHub上创建一个仓库。
在本地的learngit仓库下运行以下命令,将本地仓库与GitHub上创建的新仓库进行关联。

git remote add origin git@github.com:michaelliao/learngit.git
# 第一次推送master分支的所有内容
git push -u origin master
# 此后,每次本地提交后,只要有必要,就可以使用命令推送最新修改
git push origin master
# 查看远程库信息
git remote -v

解除本地和远程的绑定关系,并不是物理上删除了远程库。

git remote rm origin

生成密钥

ssh-keygen -t rsa -C "你注册github时使用的邮箱"

参考链接:添加远程库
从远程库克隆

8.IDEA中集成Git

9.分支的使用

  • 查看分支:git branch
  • 创建分支:git branch
  • 切换分支:git checkout 或者git switch
  • 创建+切换分支:git checkout -b 或者git switch -c
  • 合并某分支到当前分支:git merge
  • 删除分支:git branch -d

10.使用git log进入git bash中的下一个命令

问:使用Git Bash时,我输入命令:

git log

它显示了所有日志.但现在我想做第二个命令.所以我按住向下箭头到达日志的底部,它只是说(END).如何进入下一行,以便输入下一个命令?
答:在键盘上按下q键。

问题

1.git如何避免”warning: LF will be replaced by CRLF“提示?
2.git: ‘switch’ is not a git command. 问题解决办法
3.git@github.com: Permission denied (publickey). fatal: Could not read from remote repository的问题解决
4.github多台电脑使用一个账号
5.上传项目到 GitHub:如何用同一个 github 帐号在两台电脑上同步开发?/ 如何协同开发?
6.坑:ssh: connect to host github.com port 22: Connection refused
问题1:
执行命令之后,报错。重新设置密码和账户名 重新生成ssh文件都试了几遍没啥用。

$ git push -u origin master
Connection closed by ::1 port 22
fatal: Could not read from remote repository.
或
Connection reset by 20.205.243.166 port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决方法:
重点注意:需要把加速GitHub的关闭掉。首先使用ssh -T git@github.com看看能否连接上,结果如下
在这里插入图片描述
然后,在GitHub上配置SSH keys,再次测试,结果如下:

$ ssh -T git@github.com
Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access.

最后把本地的内容推送到远端
在这里插入图片描述

Connection reset by 20.205.243.166 port 22fatal: Could not read from remote repository.Please mak(提示了自己解决方法,和网络相关不能开启vpn)
问题2:
使用Git 报错 fatal: Unable to create … git index.lock
问题3:
vim中按两下d,快速删除一行
问题4:
git中出现>这个符号怎么退出?
ctrl + d 即可退出。
问题5:
成功解决:error: src refspec master does not match any

参考资料:

1.廖雪峰老师的Git教程,适合随用随查
理解Git!实习老板要我用Git协作 (好)
2.B站视频:【狂神说Java】Git最新教程通俗易懂
3.git提交代码、代码回滚的常用命令,及 添加多个文件和文件夹的多种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值