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 分支名

解决分支合并冲突

在不同的分支下修改同一文件内容,那么在合并分支时可能会产生冲突。

  1. 编辑文件,删除特殊符号,修改文件到满意为止。
  2. git add 文件名
  3. git commit -m "注释"(注意:这是commit语句不能带文件名

团队协作

clone克隆

组长创建了远程仓库,小组成员将远程仓库clone到本地。

git clone 远程仓库地址

git clone 相当于做了 git initgit remote addgit pull 三步。

邀请团队成员

组长没邀请你的话,你clone到本地的仓库是无法 git push 到远程仓库的。所以需要邀请成员加入。
注意:Collaborators 现在换成了 Manage access,就那意思,看着操作就行,没差。


其他成员pull

当有人 push 到远程仓库后,其他人再把远程仓库代码拉到本地时可以别直接 pull ,而是先 fetch 后 merge,pull = fetch + merge

  1. git fetch origin master,这时远程代码已经拉取下来,但并未改变本地文件。
  2. git checkout origin/master 转到远程分支看看代码。
  3. git checkout master 切回本地分支。
  4. git merge origin/master 合并远程代码。

解决冲突

冲突的产生主要还是因为不同成员修改同一个文件。是这么一个场景,成员a修改了1.txt并且提交到远程仓库了,这时成员b也修改1.txt提交就可能会有冲突,因为成员a提交之后,远程库版本就更新了,而此时成员b的本地库版本还是旧版本,也就是说成员b修改的并不是现在的1.txt而是旧的1.txt,这是不被允许的。
解决的方法也很简单,跟分支差不多。

  1. 先 git pull 拿到最新的1.txt。
  2. 编辑1.txt,删除特殊符号,修改到满意为止。
  3. git add 1.txt
  4. git commit -m "注释" (注意:这时commit语句不能带上文件名
posted @ 2018-05-02 17:22  samfung09  阅读(149)  评论(0)    收藏  举报