master
默认开发分支
origin
默认远程版本库
Head
默认开发分支
Head^
Head的父提交
1、创建版本库
git clone <url> [dir]
# 克隆远程版本库
git init [dir]
# 初始化本地版本库
[dir] 非必须,若dir未设置则为当前目录,否则是指定目录下创建
2、修改和提交
git status
# 查看状态
git diff
# 查看变更内容
git add .
# 跟踪所有改动过的文件
git add <file1> [<file2>]
# 跟踪指定文件一个或多个
git add <dir>
# 跟踪指定目录(包括子目录)
git mv <old_filename> <new_filename>
# 文件改名或移动
git mv -f <file> <newfile>
# 强制,即newfile名存在仍继续
git rm <file>
# 删除文件
git rm --cached <file>
# 停止跟踪文件但不删除
git rm -f <file>
# 强制删除文件
git rm -r <file>
# 递归删除,若是目录则删除子目录和子文件
git commit -m "commit message"
# 提交所有更新过的文件
git commit [file1] [file2] -m "commit message"
# 提交指定更新过的文件
git commit -a
# 修改文件后不需要执行git add命令直接提交
git commit --amend
# 修改最后一次提交
3、查看提交历史
git log
# 查看提交历史
git log -p <file>
# 查看指定文件的提交历史
git blame <file>
# 以列表方式查看指定文件的提交历史
4、撤销
git reset --hard HEAD
# 撤销工作目录中所有未提交文件的修改内容
git checkout HEAD <file>
# 撤销指定的未提交文件的修改内容
5、分支与标签
git branch
#显示所有本地分支
git branch <new-branch>
# 创建新分支
git branch -d <branch>
# 删除本地分支(可能删除失败)
git branch -D <branch>
# 强制删除本地分支(未合并到主分支等)
git checkout <branch/tag>
#切换到指定分支或tag
git checkout -b <new-branch>
# 创建新分支并切换到该分支
git checkout -
# 切换到前一个分支
git checkout <commit-hash>
# 切换到特定提交状态,仅查看,不能进行分支操作;'detached HEAD' state
不建议该分离指针状态下工作
git tag
# 列出所有本地标签
git tag <tagname>
#基于最新提交创建标签
git tag -d <tagname>
# 删除标签
6、合并与衍合
git merge <branch>
# 合并指定分支到当前分支(对本地分支合并)
最好使用
git merge <branch> -m "备注信息"
,否则合并成功进入vim模式
git rebase <branch>
# 衍合指定分支到当前分支
7、远程操作
git remote -v
# 查看远程版本库信息(包括url)
git remote show <remote>
# 查看指定远程版本库信息
git remote add <remote> <url>
# 添加远程版本库
git remote add origin <新远程仓库url>
# 更新关联的远程仓库
git fetch <remote>
# 从远程库获取代码
git pull <remote> <branch>
# 下载代码及快速合并
git push <remote> <branch>
# 上传代码及快速合并
git push -u origin master
-u参数是--set-upstream
的简写,在推送时会将本地分支与远程分支关联起来。若在master分支上有新的更改,下次只需输入git push
,Git就会将更改推送到origin的master分支。
git push <remote>:<branch/tag-name>
# 删除远程分支或标签
git push --tags
# 上传所有标签