Git学习笔记
1.基本操作
1.1.Git配置
ssh-keygen -t -C "yourEmail@example.com"
-
配置全局name和email
git config --global user.name "<yourName>"
git config --global user.email "yourEmail@example.com"
1.2. 创建git项目
-
初始化git
- git init
-
clone项目到本地
- git clone http://yourGitAddress.git <自定义文件夹名称>
1.3. 查看工作区状态
-
查看工作区状态
- git status
-
查看文件有那些修改
- git diff
-
查看提交历史
git log
git log -p //显示每次提交的内容差异
git log -n //显示最近n次提交,例如:git log -p -2
1.4. 添加文件/文件夹到暂存区
-
添加文件
- git add <file name>
-
添加文件夹
- git add <path>
-
添加当前目录所有文件
- git add .
-
将<path>内的所有已跟踪文件的修改添加到暂存区(省略path表示当前目录)
- git add -u [<path>]
-
将<path>内的所有已跟踪文件的修改和未跟踪文件添加到暂存区(省略path表示当前目录)
- git add -A [<path>]
-
查看<path>中已修改但未提交的文件,并通过子命令进行控制(省略path表示当前目录)
- git add -i [<path>]
1.5.撤销及删除
-
取消暂存
- git reset HEAD <file name>
-
恢复文件
- git checkout -- <file name>
-
删除文件
- git rm <file name>
1.6.移动文件
- git mv <file from> <file to>
1.7.提交
-
提交所有改动并编写日志
git commit -m "<改动日志说明>"
git commit -a -m "<改动日志说明>" //跳过暂存状态,直接提交
git commit —amend "<改动日志说明>" //当漏掉文件没提交,可以使用这个命令弥补
1.8.拉取
-
下拉指定主机的指定分支,并与本地的指定分支合并
- git pull <origin> <远程master>:<本地master>
-
下拉指定主机的指定分支,并与本地的当前分支合并
- git pull <origin> <master>
1.9.推送
-
推送本地指定分支到指定远程主机的指定分支上
- git push <origin> <本地master>:<远程master>
-
推送本地指定分支到远程同名分支上,如果远程没有同名分支,则会新建同名分支
- git push <origin> <本地master>
-
推送空的分支到远程指定分支,相当于删除远程分支
- git push <origin> :<远程master>
-
推送当前分支到指定主机的指定分支
- git push <origin> HEAD:<远程master>
-
推送当前分支到指定主机的同名分支
- git push <origin> HEAD
-
推送本地分支到远程同名分支上,并建立追踪关系(建立追踪关系后可直接使用git push推送)
- git push -u <origin> <master>
1.10.查询远端仓库信息
-
查看远程仓库
- git remote
-
查看远程仓库Url
- git remote -v
1.11.标签
-
列出标签
- git tag
-
添加附注标签
- git tag -a <tag name> -m "<tag description>"
-
添加轻量标签
- git tag <tag name>
-
查看标签信息与对应提交信息
- git show <tag name>
-
删除标签
- git tag -d <tag name>
-
检出标签
- git check <tag name>
1.12.分支
-
查看分支
git branch
git branch -v //查看每一个分支的最后一次提交
-
创建分支
- git branch <branch name>
-
切换分支
git checkout <branch name>
git checkout -b <branch name> //相当于创建分支,并checkout到该分支
-
合并分支
- git merge <branch name>
-
删除分支
- git branch -d <branch name>
-
删除远程分支
- git push origin --delete <branch name>
2.场景
2.1.分支的合并
git checkout master
git merge <branch name>
解决冲突
git add <file name>
(可以使用git status来确认冲突是否已解决)
git commit
2.2.分支变基
- rebase之前需要经master分支拉到最新
git checkout master
git pull
- 切换分支到需要rebase的分支,这里是dev分支
- git checkout dev
- 执行git rebase master,有冲突就解决冲突,解决后直接git add . 再git rebase --continue即可
git rebase master
解决冲突
git add <file name>
git rebase —continue
- 切换到master分支,执行git merge dev
git checkout master
git merge dev