1,为什么设置用户名和邮箱?
自报家门,让远程仓库知道是谁提交的,但是不会对用户名和邮箱验证。此外,冒充别人的身份是可以被查到的。
2,git init 和 git init --bare 的区别是什么?
git init
为当前目录初始化一个git仓库,当前目录会多一个.git子目录,它包含很多git的配置文件。
git init --bare
它与 git init 的区别是:它生成的是一个裸仓库,是没有工作区的,只会记录git提交的历史信息,git log 一下是可以看到各个版本信息的,但是没办法进行版本回退或者切换分支的操作,但是有一个好处是可以通过添加hooks钩子,即在当前目录的同级目录下新建一个存放项目源码的文件夹,也就是说将git仓库与项目源码分离。
3,使用 Git 的基本操作是什么?
git config --global user.name "XXX" 设置全局用户名
git config --global user.email XXX 设置全局邮箱
git init 再当前目录初始化本地仓库
git remote add origin [远程仓库地址] 添加远程仓库
git pull origin [分支名] 获取远程仓库的最新代码
git add [文件名] 将文件加入暂存区
git commit -m "说明文字" 将暂存区的文件提交到本地仓库
git push origin [分支名] 将未提交到远程仓库的文件提交
4,为什么通常先 pull,然后再 push ?
先 pull 再 push 的目的是为了避免冲突的产生。那什么又是冲突呢?
产生冲突的情景:两个已经提交的分支的相同文件相同位置的的不同操作进行了合并。换句话说:主分支master对分支A和分支B的不同修改取舍不了,就像一女不能同一时间嫁给两人,但是可以先嫁给A,和A离婚,再嫁给B。
而在修改文件之前先 git pull,获取远程最新的代码,同步完了之后再对代码进行修改和push,两个分支的合并就不会产生冲突。
5,Git 是怎么完成本地仓库与远程仓库的同步的?
这里分享一下我认为较好的文章:Git:远程分支----git fetch命令的使用
6, add 时遇到 LF will be replaced by CRLF in 问题怎么办?
原因:windows提交到linux,因两者换行符不同,出现警告。
解决办法:git config --global core.autocrlf false
会一直更新(*¯︶¯*)