1.git安装与配置
-
登录
git config --global user.name "username" git config --global user.email "email"
-
生成SSHKey
ssh-keygen -t rsa -C "email"
2.git基本命令
-
创建版本库,添加文件
git init git add -A git commit -m "message"
-
修改最近提交的描述
git commit --amend -m "your new message"
-
版本回退
git reset --hard HEAD^ git reset --hard 1094a
-
查看日志
git log
-
查看每次命令
git reflog
3.git工作区与暂存区
工作区
就是你在电脑里能看到的目录
版本库
工作区有一个隐藏的目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里面存了很多东西,其中最重要的是称为stage或者index的暂存区,还有Git为我们自动创建的第一个分支maser,以及只想master的一个指针叫HEAD
暂存区(stage,index)
当使用git命令git add
后,添加的文件会进入版本库的暂存区
然后使用git commit
命令后,会一次性把所有的修改提交到暂存区
一旦提交成功后,暂存区就是空的。
注意
每次git commit
只会提交暂存区的内容。每次修改,如果不用git add
到暂存区,那就不会加入到commit
中。
5.git撤销修改
撤销修改(丢弃工作区的修改)
-
命令
git checkout -- filename
-
这个命令是将文件恢复到最近一次的
git add
或者git commit
状态
回退暂存区的修改到工作区
-
这种情况是对文件做了错误的修改而且还
git add
了 -
命令
git reset HEAD filename
6.git分支管理
1. 创建与合并分支
每次提交Git都会把它们串成一条时间线,这条时间线就是一个分支。只有一条时间线的话,这个分支叫做主分支,即master
分支
1.1 创建分支
git branch dev
git checkout dev
这两个命令可以用一个命令表示
git checkout -b dev # -b参数表示创建并切换
1.2 查看当前分支
$ git branch
* dev
master
1.3 合并分支
git merge master
git merge
命令用于合并指定分支到当前分支
2. 冲突解决
当两个分支都有所改变的时候,合并该两个分支就会发生冲突
合并两个分支的话就会出现如下情况
aaaa
bbb
ccc
<<<<<<< HEAD
mydev
=======
mymaster
>>>>>>> master
Git用<<<<<<<
,=======
,>>>>>>>
标记出不同分支的内容
其中mydev是dev分支添加的内容,mymaster是master添加的内容
然后修改文件里面的冲突就再git add
,git commit
就解决冲突了
通常情况下合并分支时,Git会用Fast Forward模式,但这种模式下,删除分支后,会丢掉分支信息
如果禁用Fast Forward
模式,Git就会再merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。