git简单入门
先来看一张图

本地配置
全局配置
git config --global user.name "xxx"
git config --global user.email "xxx@qq.com"
修改全局配置
git config --global --replace-all user.email "xx@qq.com"
git config --global --replace-all user.name "xxx"
查看git配置信息
git config --list
查看用户名、密码、邮箱
git config user.name
git config user.password
git config user.email
查看当前用户git配置文件
cat ~/.gitconfig
查看当前项目git配置文件
cat .git/config
提交远程仓库一般流程
1、本地创建项目文件夹,右键打开git bash
2、本地仓库初始化
git init
2.5、查看工作区和暂存区状态(这一步顺序不固定,一般在add和commit前后看一下)
git status
3、添加文件到暂存区监控起来
添加单个文件
git add 文件名
添加多个文件
git add .
git add -u
git add -A
2.0的版本中git add . 也可以提交所有的文件了,而1.0当中删除的文件不能提交,下面是三者区别

4、提交到本地版本库
git commit -m "提交注释"
4.5、查看远程仓库链接
git remote -v
5、添加远程仓库链接,名字随便起,一般用origin。如果需要关联gitee,则多remote add一下gitee仓库地址
git remote add origin [git远程仓库地址]
5.5、从远程仓库拉取一下(非必须,可能会有冲突,自行百度,不难)
git pull origin master
6、推到远程仓库,初次推要输入用户名密码
git push origin master
查看版本记录
查看版本日志
- 版本信息常规显示
git log

数量太多的话,按空格键下一页,按b上一页,按q退出
- 版本信息单行显示
git log --pretty=oneline

- 版本信息单行显示(更简洁)
git log --oneline

- 版本信息单行显示(显示步数版)
git reflog
HEAD@{切换到该版本所需的步数}

历史版本切换
根据索引值切换
git reset --hard 索引值
如 git reset --hard 0a6fc6c

^符号(只能后退)
git reset --hard HEAD^
^的个数表示回退的步数,比如 HEAD^ 为回退一步,HEAD^^ 为回退两步,如此类推。
~符号(只能后退)
git reset --hard HEAD~n
n为回退的步数,HEAD~3 为回退三步,如此。
--hard、--soft和--mixed的区别
--soft:工作区、暂存区不变,版本区改变。
--mixed:工作区不变,暂存区和版本区改变。
--hard:三个区均改变(最常用)。
分支
查看分支
git branch -v
创建分支
git branch 分支名
切换分支
git checkout 分支名
切到远程仓库分支:git checkout origin/master
合并分支
可以先checkout回master分支。
git merge 分支名
解决分支合并冲突
在不同的分支下修改同一文件内容,那么在合并分支时可能会产生冲突。
- 编辑文件,删除特殊符号,修改文件到满意为止。
- git add 文件名
- git commit -m "注释"(注意:这是commit语句不能带文件名)
团队协作
clone克隆
组长创建了远程仓库,小组成员将远程仓库clone到本地。
git clone 远程仓库地址
git clone 相当于做了 git init 、git remote add 和 git pull 三步。
邀请团队成员
组长没邀请你的话,你clone到本地的仓库是无法 git push 到远程仓库的。所以需要邀请成员加入。
注意:Collaborators 现在换成了 Manage access,就那意思,看着操作就行,没差。



其他成员pull
当有人 push 到远程仓库后,其他人再把远程仓库代码拉到本地时可以别直接 pull ,而是先 fetch 后 merge,pull = fetch + merge
- 先 git fetch origin master,这时远程代码已经拉取下来,但并未改变本地文件。
- git checkout origin/master 转到远程分支看看代码。
- git checkout master 切回本地分支。
- git merge origin/master 合并远程代码。
解决冲突
冲突的产生主要还是因为不同成员修改同一个文件。是这么一个场景,成员a修改了1.txt并且提交到远程仓库了,这时成员b也修改1.txt提交就可能会有冲突,因为成员a提交之后,远程库版本就更新了,而此时成员b的本地库版本还是旧版本,也就是说成员b修改的并不是现在的1.txt而是旧的1.txt,这是不被允许的。
解决的方法也很简单,跟分支差不多。
- 先 git pull 拿到最新的1.txt。
- 编辑1.txt,删除特殊符号,修改到满意为止。
- git add 1.txt
- git commit -m "注释" (注意:这时commit语句不能带上文件名)

浙公网安备 33010602011771号