git常见的场景和对应的命令

2021-02-18  本文已影响0人  猪儿打滚

一、使用git前需要做的最小配置

1、设置user.name和user.email

git config --global user.name 'your_name'
git config --global user.email 'you_email@domain.com'

2、config的三个作用域
git config --local # 只对某个仓库有效;缺省时,等于```local```
git config --global # 对当前用户所有仓库有效
git config --system # 对系统所有登录的用户有效

显示config的配置,加--list即可

git config --list --local
git config --list --global 
git config --list --system 

q键退出查看页面

二、创建git仓库

有两种场景

1、把已有的项目加入到git管理

将本地已有项目上传到新建git仓库

2、新建的项目加入到git管理
cd 某个文件夹
git init you_project # 会在当前路径下创建和项目名称同名的文件夹
cd you_project # 该文件夹下会有个.git的隐藏文件夹,是git的核心文件,不能删

三、通过commit来认识工作区和暂存区

# 工作区就是本地有.git文件的目录
git add index.html git-logo  # 从工作区添加到暂存区
git commit -m "正常提交1"  # 正式提交和说明;从暂存区提交到版本历史

三、提交过的文件改名

场景:readme改名成readme.md
方式一:

mv readme readme.md # 删除readme ,新增readme.md 
git add readme.md # 把readme.md 添加到暂存区
git rm readme # 删除暂存区的readme 
git status # 查看状态,此时git的打印区会显示readme改名成了eadme.md 

方式二:

git mv readme readme.md # 直接暂存区改名
git status # 查看状态,此时git的打印区会显示readme改名成了eadme.md 
git commit -m "readme 改名为 readme.md" # 从暂存区提交到版本历史

四、查看版本演变历史日志

git log

五、分支相关的命令

六、commit相关的命令

rebase命令 rebase界面-修改命令 修改message内容 修改结果 步骤2
步骤3
步骤4
合并结果

七、暂存区相关的命令

八、文件恢复相关的命令reset

九、正确删除文件

十、

一部分文件在暂存区了,一部分还在工作区修改,此时有bug需要临时进行修复。此时可以把手头的工作放到一个区域,等bug修复完毕后,再把工作去回复到以前的状态。
1.先把手头的工作放到一个区域:git stash
2.查看stash:git stash list
3.查看status:git status

步骤1-3
4-1.当修改完bug后,再回复回去:git stash apply(把stash的文件回复到工作区,但是stash中的东西不会进行删除)
步骤4-1
4-2.第二种方式,就是使用git stash pop(把stash中的内容删除,并回复到工作区)
步骤4-2

11、指定不需要git管理的文件

.git同级目录下,创建.gitingore文件,不同语言的不一样,可参考:https://gitee.com/BattleCall/gitignore

git fetchgit pull 的区别

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

12、同个分支中,不同人修改了不同的文件

1.克隆项目到本地:git fetch xxx
2.查看当前项目本地分支和远端分支:git branch -av
3.让本地分支和远端分支相关联(feature分支):git checkout -b 远端分支 本地分支
4.添加修改的文件:git add xxx
5.提交文件:git commit -m "aabbcc"
ps. 如果出现远端项目的文件或内容,比本地的多或者不一样(冲突),那么则需要合并:git merge 远端分支

分支关联

13、同个分支中,不同人修改了同个文件的不同区域内容

后来者进行push时,会报错

冲突报错

14、同个分支中,不同人修改了同个文件的同个区域的内容

1.pull本地项目和push远程项目时,都会报这个文件的冲突错误


冲突错误

15、A变更了文件名和B变更了文件的内容,同时commit,变更文件名的先push(成功),变更内容的后push(报错)

后push的报错

16、多人把同个文件的文件名修改成了不同的文件名

这种情况无法直接使用get pull解决,它会把文件都拉下来,让我们手动解决这个情况

报错情况
上一篇下一篇

猜你喜欢

热点阅读