git 常用操作及常见问题解决

一.Git

1.Git 配置

git config – global user.name “用户名”
git config – global user.email “邮箱”

检查自己的git是否安装成功: git --version

二.Git的本地实现

2.初始化一个本地git仓库

(首先新建一个文件夹,右键git bash,输入命令 git init),初始化成功会出现一个.git的文件夹

注意:文件路径避免出现中文。

这里写图片描述

3.关于文件的一些基本命令行操作

创建一个文件夹: mkdir aaa

进入文件: cd 路径

查看文件: ls

查看当前工作目录: pwd
显示隐藏文件:
ls -al

创建index.html文件,并把xxx输入 echo xxx > index.html

将ccc添加到index.html文件中 echo ccc >> index.html

查看index.html的内容 cat index.html

这里写图片描述

这里写图片描述

4.git本地仓库的认知:工作区、暂存区、历史区(又被称为版本库)

这里写图片描述

工作区到暂存区提交代码可多次提交,暂存区到版本库建议一次提交

5.本地仓库常用操作

工作区内容保存到暂存区三种方法: git add . /A/文件名
暂存区代码到历史区两种方法: git commit -m +”注释”

git commit如果不加-m参数会弹出编辑页面,输入注释,按Esc退出编辑模式,再输入:wq!退出编辑器。
W:保存 q:退出 !:强制执行

这里写图片描述

这里写图片描述

查看工作区的状态: git status
查看状态的精简模式: git status -s

*注意: 标红代表:工作区到暂存区有差异
标绿代表:暂存区到历史区有差异

删除index.html文件 rm index.html
强行删除index.html文件 rm -rf index.html
rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用。

创建文件夹 touch index.js

这里写图片描述

这里写图片描述

查看当前分支的提交日志 git log
查看当前分支的提交短日志 git log --oneline --graph

解释: 显示本机所有的提交日志 --online 显示所有分支 --all
显示分支关系 --graph 显示当前指针指向的分支名 --decorate

这里写图片描述

比较工作区和暂存区的差异 git diff
比较暂存区和版本库的差异 git diff --staged 或者 git diff --cached
注意:diff后面不带参数默认是工作区和历史区的区别

这里写图片描述

在git bash打印操作命令 history
新建文件打印操作命令 history > test.txt

这里写图片描述

三、git本地库和远端仓库的交互

1.关于远端仓库的科普:

Git是版本控制系统,Github是在线的基于Git的代码托管服务
GitLab拥有GitHub拥有的一切,但他拥有更多让团队对它们的repositories(库)拥有更多的控制,比如:非常便捷的用户界面;设置仓库权限、只有特定的人可以push,force push或者删除一个分支的代码;不再权限范围内,将不知道这个资源的存在。

2.本地和远端的交互

案例:https://github.com/githubwyn/aaa.git (这是一个github的远端操作)

连接远程仓库 git remote add origin +远程仓库地址
查看连接了哪些远程仓库地址 git remote -v
删除远程仓库: git remote rm origin

工作区内容保存到暂存区三种方法: git add . /A/文件名
暂存区代码到历史区两种方法: git commit -m +”注释”
一步完成提交: git commit -a -m”注释”

从远端仓库pull代码带本地(第一次不需要) git pull origin master
将本地仓库代码push到远端仓库 git push origin master

这里写图片描述

这里写图片描述

Push后远端可以看到本地的提交内容

这里写图片描述

点击index查看修改详情

这里写图片描述

四、多人协作命令

1.团队新加入一个贡献者,如何做第一次操作

查看是否安装git git --version
初始化本地仓库 git init
连接远程仓库 git remote add origin +仓库地址
查看本地仓库连接的所有远程仓库 git remote -v
从远端pull代码到本地 git pull origin master

这里写图片描述

创建分支 git checkout dev
创建并切换分支 git checkout -b dev
查看分支 git branch
查看主线提交内容 git show master

这里写图片描述

这里写图片描述

2.在分支上修改代码,进行提交,会遇到如下问题。

warning: LF will be replaced by CRLF in aa.html.
windows中的换行符为 CRLF, 而在Linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:

     $ git config --global core.autocrlf false  //禁用自动转换
     $ rm -rf .git  // 删除.git  

然后重新执行:

  $ git add .  
  $ git init

这里写图片描述

这里写图片描述

分支上修改了代码,如何合并到主线
这里写图片描述

3.分支上修改代码如何合并到主线

git add . git commit -m”注释” git checkout master git merge dev

问:这样就完成了merge?是否太容易了。
答:是的,这样顺利是有前提的。前提是dev有提交,master没有任何改动。

如果master也发生了修改,在master中merge的时候回报错:
提示:自动合并 index.js
冲突(内容):合并冲突在index.js
自动合并失败;修复冲突,然后提交结果。

这里写图片描述

打开冲突的文件:找到冲突位置,解决冲突

这里写图片描述
这里写图片描述

然后执行 git add . git commit -m”” git push
成功之后执行:git log --oneline --graph --decorate --all

这里写图片描述

分支修改完问题后可以删除分支: git branch -d dev
查看所有分支: git branch

这里写图片描述

4.细说删除分支

git branch -d dev
Git默认是Fast forword的模式,这种情况下删除分支会丢掉分支信息
使用-no-ff会在merge的时候生成一个新的commit,从分支历史上就可以看出分支信息
git merge --no-ff -m“merge add commit”

5.工作中常遇到的问题

有一种情况灰常常见,当你拉分支修改问题时,突然有一个急活需要切换分支进行修改,而手头的问题修改了一半。你的修改应该怎么办?
提交?不是一个完整的commit
不提交?切换分支会丢掉你所有的修改

分支上进行修改如果未提交切换分支会提示错误,需要保存后再切换

这里写图片描述

在分支上保存了工作区和暂存区的内容在分支上 git stash
查看工作状态 git status
查看被缓存的信息 git stash list

这里写图片描述

得到这些信息的两种方式 git stash pop

第二种 git stash apply stash@{0}
git stash drop

这里写图片描述

回滚 git reset --hard

这里写图片描述

Git提交了很多东西有的想要,有的不想要,可以进行选择 git cherry-pick f7217c2

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值