本文主要是介绍Git笔记(附上史上最浅显易懂的Git教程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
史上最浅显易懂的Git教程
廖雪峰的Git教程
Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
Git命令
| 功能 | 命令 |
| 查看Git版本 | git --version |
| 更新Git | git update-git-for-windows |
| 配置姓名和邮箱 | git config --global user.name "huang_jianhua" git config --global user.email "huang_jianhua0101@outlook.com" |
| 新建目录 | mkdir learngit |
| 进入目录 | cd learngit |
| 查看文件路径 | pwd |
| 创建Git仓库 | git init |
| 查看所有文件 | ls -ah |
| 添加到暂存区 | git add readme.txt git add . |
| 提交到仓库 | git commit -m "wrote a readme file" |
| 查看差异 | git diff git diff HEAD -- readme.txt |
| 查看提交日志 | git log git log --pretty=oneline git reflog |
| 回退到上一个版本 | git reset --hard HEAD^ |
| 工作区退回一步 | git checkout -- readme.txt git restore readme.txt |
| 把暂存区的修改撤销掉 | git reset HEAD readme.txt |
| 删除文件 | rm test.txt |
| 从版本库中删除文件 | git rm test.txt |
| 创建SSH Key | ssh-keygen -t rsa -C "huang_jianhua0101@outlook.com" |
| 添加远程仓库 | git remote add origin git@github.com:michaelliao/learngit.git |
| 本地仓库推送到远程仓库 | git push -u origin master |
| 推送到远程库 | git push origin master |
| 强制推送到远程库 | git push -f |
| 查看远程库 | git remote git remote -v |
| 删除远程库 | git remote rm origin |
| 克隆远程仓库 | git clone git@gitee.com:huang_jianhua0101/gitskills.git |
| 创建分支 | git branch dev |
| 切换分支 | git checkout dev git switch master |
| 创建并切换分支 | git checkout -b dev git switch -c dev |
| 查看当前分支 | git branch |
| 查看远程分支 | git branch -r |
| 合并指定分支到当前分支 | git merge dev |
| 合并分支并留下分支信息 | git merge --no-ff -m "merge with no-ff" dev |
| 删除分支 | git branch -d dev |
| 删除远程分支 | git branch -dr dev |
| 强行删除未合并过的分支 | git branch -D feature-vulcan |
| 查看分支合并情况 | git log --graph --pretty=oneline --abbrev-commit |
| 隐藏工作现场 | git stash |
| 查看工作现场 | git stash list |
| 恢复并删除stash内容 | git stash pop |
| 复制一个特定的提交到当前分支 | git cherry-pick 4c805e2 |
| 从远程origin的dev分支创建分支到本地 | git checkout -b dev origin/dev |
| 把本地未push的分叉提交历史整理成直线 | git rebase |
| 打标签到最新提交 | git tag v1.0 |
| 打标签到指定提交 | git tag v0.9 f52c633 |
| 查看所有标签 | git tag |
| 查看指定标签详情 | git show v0.9 |
| 创建带有说明的标签 | git tag -a v0.1 -m "version 0.1 released" 1094adb |
| 删除标签 | git tag -d v0.1 |
| 推送某个标签到远程 | git push origin v1.0 |
| 推送全部尚未推送到远程的本地标签 | git push origin --tags |
| 删除已经推送到远程的标签 | git tag -d v0.9 git push origin :refs/tags/v0.9 |
| 让Git显示颜色 | git config --global color.ui true |
| .gitignore模板 | github/gitignore: A collection of useful .gitignore templates |
| 在线生成.gitignore文件 | Gitignore Online Generator |
| 配置别名 | git config --global alias.st status |
| git lg | git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" |
| 查看配置文件 | cat .git/config |
| 配置清单 | git config -l |
| 系统配置 | git config --system --list |
| 全局配置 | git config --global --list |
工作区暂存区

分支策略(实际开发中的分支管理)
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:

并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
master分支是主分支,因此要时刻与远程同步;dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;- bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
- feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
图形界面Git工具
Sourcetree | Free Git GUI for Mac and Windows (sourcetreeapp.com)
这篇关于Git笔记(附上史上最浅显易懂的Git教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!