git 基础 与 实际操作 (提交到 gitee 仓库中)

Git

Git的作用与安装

  1. 作用:

    1. 协同开发
    2. 版本记录
    3. 冲突解决
    4. 历史追查
    5. 代码备份
    6. 版本还原
    7. 权限管理
    8. 分支管理
    9. 代码审查
    ...
    
  2. 安装

    1. 命令行工具:git for windows(重点)
    https://git-for-windows.github.io/1
    tip:
    点击安装包,然后傻瓜式的安装就可以成功
    
    2. 可视化工具:TortoiseGit
    https://tortoisegit.org
    
    3. github网站(掌握)
    http://www.github.com
    
    4. gitee
    http://www.gitee.com
    

Linux常用命令

命令 说明 使用方法
touch 创建一个文件 touch test.html
mkdir 创建一个文件夹 mkdir test
ls 查看文件夹下面的文件 ls
clear 清空屏幕 clear
rm 删除命令-rf (强制递归删除) rm-rf 路径
cat 打印文件内容 `
cd       # 回到家目录
cd .     # 回到当前位置
cd ..    # 前往父级目录
cd ../ect/dir1     # 前往父级目录下的ect下的dir目录

Vim基础命令

命令行下的文本编辑器

命令 作用 使用方法
vim 用vim打开一个文件 vim 1.txt
i insert i 或者 insert
:q! 非编译下 ,强制退出
:w! 非编译下,强制保存
:wq! 非编译下,强制保存并退出
:x! 非编译下,强制保存并退出
dd 非编译下,删除一行
u 非编译下,倒退

git的使用

  1. Git 全局设置:这个是第一次使用的时候配置,记录开发者的邮箱

    git是分布式版本控制工具,所以我们需要填写用户名和邮箱作为一个标志。
    C:\Users\lixi19861125路径下.gitconfig文件,这个我文件里面可以看到--global属性,所有的git项目都会公用这个属性
    git config --global user.name "用户名称"
    git config --global user.email "你的注册gitee 或者 github 的邮箱地址"
    # 邮箱与github或者gitlab的注册邮箱保持一致
    # 我的 gitee没有设置邮箱,所以这里可以用它默认的这个.如果设置邮箱,那就必须与设置的邮箱一致
    

    注意 :

    • 命令之间有 空格
    • 上面的命令只需要配置一次,如果错误重新输入
    • 可以使用git config -l 命令查看配置信息是否保存成功
  2. 创建 git 库

    mkdir fileName   # 创建本地仓库
    cd fileName         # 进入本地仓库
    git init 
    touch README.md      # 创建一个描述文件
    git add README.md    # 添加这个描述文件
    git commit -m "first commit"
    git remote add "你的 .git 地址"
    git push -u origin "master"
    

    如果已经有仓库

    cd existing_git_repo
    git remote add origin "你的 .git 地址"
    git push -u origin "master"
    

Git版本库的三个区域

  • 工作区(代码编辑区)
  • 暂存区(git修改等待提交区域)
  • 云仓库(代码云保存)

git 基础 与 实际操作 (提交到 gitee 仓库中)_第1张图片

  1. 修改后提交到gitee中

    git.add .  # 将所有的add上
    git commit -m "这里面的是记录"
    git push --all  # 将所有的push到云端
    

git 命令

  1. 查看文件状态

    git status
    
  2. 查看文件状态的详细信息

    git diff   # 不显示新增的文件,文件被修改了是可以显示的
    
    • 尚未缓存的改动: git diff
    • 查看已缓存的改动: git diff --cached
    • 查看已缓存的与未缓存的所有改动: git diff HEAD
    • 显示摘要而非整个 diff: git diff --stat
  3. 将文件/目录添加到临时暂存区

    1. git add 文件名/目录名
    2. git add .   # 这个是将所有修改的内容全部添加
    3. git add -A  # 与 . 一样的 
    tip:
    以上通过git add命令的文件会提交到暂存区中,但是这里的文件其实没有真正的提交。使用下一个命令才是把他提交到一个统一的版本文件
    
  4. 提交文件

    git commit -m "提交信息"
    tip:
    每当有文件被修改/添加/删除的时候,都需要重新git add,然后再git commit
    
  5. 把暂存区的内容发送云端

    git push -u origin "master"
    
  6. 查看日志

    git log
    git log --online
    
  7. 版本回滚

    git reset --hard HEAD^1
    
    tip:
    HEAD是一个指针,永远指向最新版本,^1表示让HEAD指针指向上一个版本
    
    --hard 硬:这种回顾不但将版本回顾,还会将指定的数据抹除。不会保留任何你修改的记录
    --soft 软:回退版本,也会保留改动的记录。会自动帮你git add。
    --mix 折中:回退版本,并会保留所有改动记录。但是不会自动帮你git add
    
    git reset : 修改HEAD的位置
    
    这种方式可以恢复到之前某个提交的版本,但是恢复之后,当前版本之后的版本将不复存在。
    
    • 回退多个版本
    git reset --hard HEAD~2 #回退到2个版本之前的版本
    
  8. 版本的穿越

    git reflog # 查看历史记录的版本号
    
    e.g.
    $ git reflog
    	# 查看所有的操作记录
    e.g.
    git reset --hard 7c77ab0
    
  9. 还原文件

    git checkout 文件名
    
    e.g.
    vi src/b.txt
    
    git add src/b.txt
    git commit -m "update 005"
    
    git checkout src/b.txt
    
  10. 删除文件

    1. 用Linux命令先删除文件
    2. git add
    3. git commit
    
    git rm 从工作目录中手工删除文件
    
    1. 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f: git rm <file>
    2. 仅是从跟踪清单中删除: git rm --cached <file>
    
  11. 移动或者重命名一个文件/目录/软连接

    git mv
    
  12. 查看分支

    git branch -v
    
    e.g.
    $ git branch -v
    * master b94d274 update 006
    
  13. 创建分支

    git branch 分支名称
    e.g.
    $ git branch common
    $ git branch -v
      common b94d274 update 006
    * master b94d274 update 006
    

    注意:

    有了新的分支之后,需要把新的分支push到云端 git push --setupstream origin

  14. 切换分支

    git checkout 分支名
    
    e.g.
    git checkout common
    

    每次切换分支之前

  15. 合并分支 (将其他分支合并到主分支 : master)

    1. 切换到主分支
    git checkout master
    
    2. 合并
    git merge 分支名
    e.g.
    
    git merge common
    
  16. 删除分支

    git branch -d name
    
  17. 其他分支上传后 需要 pull

    git pull origin master
    

    git 基础 与 实际操作 (提交到 gitee 仓库中)_第2张图片

配置忽略文件

需要忽略的文件不能够push到云端库中的。

自己手动创建一个文件 .gitignore ,在文件中书写规则 ( .gitignore 需要和 .git 同级目录)

使用 ls -a

# 以下这些需要在文件中写
#忽略.idea目录
.idea
# 忽略所有的png图片
*.png
#把/source/imgs整个文件夹给忽略
/source/imgs
#忽略自己
.gitignore

仓库中已经提交了改文件
对于已经加入云仓库的文件,是不能忽略的

  1. 对于已经加入到云仓库的文件,可以在版本库当中进行
    删除
git rm --cached .gitignore
  1. 清楚完成以后,在配置文件当中进行忽略
  2. .重新add和commit和push提交

解决分支的合并冲突

  1. 为什么会冲突 :

    • 多个分支当中,同一个文件的内容不相同,会产生冲突
  2. 在分支合并的时候解决冲突

    1. 定位冲突的文件 (含有 both的就是冲突文件)
    	$ git status
    2. 手动处理处理 将冲突的代码进行筛选和修补
    	打开冲突文件
    		<<<<<<<<<HEAD  到   ========          # 是master代码
    		========>>>>>>>>>>> 分支名字    # 是分支代码
    3. 想要那一段代码就另一端代码,然后保存 
    4. 重新 `add` , `commit``push`
    

.git目录

git 基础 与 实际操作 (提交到 gitee 仓库中)_第3张图片

  • hooks : 客户端的钩子脚本,特定操作下自行执行的
  • info : 包含全局性排除文件,可以忽略那些文件的(一般不用)
  • logs : 目录存储了所有的数据内容, 本地版本库的存放位置
  • refs : 该
  • config : 该文件包含了配置项目
  • description : 仓库描述信息
  • HEAD : 只是目前被检索的分支
  • index : 暂存区文件,是一个二进制文件

完整的 git 流

git 基础 与 实际操作 (提交到 gitee 仓库中)_第4张图片

GitFlow

GitFlow 是团队开发的一种最佳实践,将代码划分积分部分

git 基础 与 实际操作 (提交到 gitee 仓库中)_第5张图片

  • Master : 主分支,上面只能保存正式发布的版本
  • Hotfix : 线上代码Bug修复分支,修复完成以后,需要合并回Master和Develop分支,同时在master上打一个target
  • Develop : 开发者分支,提交的都是未测试的代码
  • Feature : 功能分布,给App每增加一个功能,则需要开一个fea分支
  • Release : 待发布分支,测试分支,修改BUG(把开发代码进行检测的)

常见出错

CRLF

CRLF 是Cariiage-Return-Line-Feed的缩写

  • CR表示的是ASCII第13 符号位\r回车键
  • LF表示的是ASCII第10 符号位\n换行符

在这里插入图片描述

这个只是一个警告,并不是错误

提交出错

git 基础 与 实际操作 (提交到 gitee 仓库中)_第6张图片

原因 : 两个人(A和B)使用同一个分支,"A"先提交了,远程仓库的
状态发生了改变

B的本地仓库和云仓库不同步,提示需要先获取云仓库内容 (这个一般在 git commit 时就已经出错了)

修改: git pull origin master (这里的 master 是分支名字,你是那个分支可以换成相对应的分支名)

注意:先git pull,让本地仓库同步云仓库,然后再push

第一次提交错误

云端仓库没有分支

解决: git push --set-upstream origin demo

冲突提醒

  1. 合并分支容易导致冲突
  2. 利用主分支开辟一个新的分支
  3. 修改主分支的index.html
  4. 修改从分支的index.html
  5. 利用主分支合并从分支

git 基础 与 实际操作 (提交到 gitee 仓库中)_第7张图片

注意:先定位冲突,修改冲突文件,在提交

位置错误

在这里插入图片描述

当前没有 .git包

可以在 该目录下 git init

安装和写在密码管理工具

安装 :

git credential-manager install

卸载:

git credential-manager uninstall

注意 : 每次需要验证才是安全模式

你可能感兴趣的:(基础知识,git,github,linux)