Git 是一个免费的开源分布式版本控制系统, 旨在快速高效地处理从小型到大型项目的所有内容 Git 易于学习 , 占地面积小, 具有闪电般的快速性能. 它具有Subversion,CVS,Perforce和ClearCase之类的SCM工具, 具有廉价的本地分支, 方便的暂存区域和多个工作流等功能 官方这么说的!
Git 的出现方便了千万程序员, 提高了开发者之间的协作, 特别相对大型项目而言.
内建的图形化 Git
gitk 复制代码
彩色的 Git 输出
git config color.ui true 复制代码
显示历史记录时,每个提交的信息只显示一行
git config format.pretty oneline 复制代码
# 查看当前版本 git --version # 版本升级 git update 复制代码
git config --global user.name "you username" git config --global user.email "you email" 复制代码
git log # 查看提交记录 # 显示简化版 git log --pretty=oneline 复制代码
git branch * master # * 标识的是当前所在的分支 复制代码
git branch -r 复制代码
git branch -a 复制代码
git branch [branch name] # 例如 git branch dev 复制代码
git checkout -b [branch name] # 等于 git branch [branch name] git checkout [branch name] 复制代码
git push origin [branch name] # 例如 git push origin dev 复制代码
git branch -d [branch name] # 例如 git branch -d dev 复制代码
git push origin :[branch name] # 例如 git push origin :dev 复制代码
# 在 dev 分支开发完成之后 # 要合并到 master # 提交之后 执行下面命令, 就将 dev 分支合并到了 master # merge 命令用于合并指定分支到当前分支 git merge dev 复制代码
# 人生不如意事,十之八九 # 合并分支, 如有冲突, 必须手动解决冲突后提交 Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容 # git log 可以查看分支合并情况 git log # 等于 git log --graph --pretty=oneline --abbrev-commit 复制代码
# 在修复 bug 时, 创建 issue-001 分支, 此时需要储藏当前 dev 工作区的内容 # 执行下面命令, 储藏工作内容 git stash # 储藏之后, 工作区是干净的 # 修复完bug之后, 返回 dev 分支 # 此时需要恢复前面的内容 # 查看储藏内容 git stash list # 1. 恢复工作区内容 git stash apply # 这种恢复不会删除 stash list 内容 # 删除 stash 内容 git stash drop # 2. 恢复工作区内容, 并删除 stash list 的内容 git stash pop # 可以多次 stash , 恢复时, 先用 git stash list 查看, 然后恢复指定的 stash git stash apply stash@{0} 复制代码
# 添加一个新功能, 创建并切换到一个新feature分支 git checkout -b feature-vulcan # 开发完成之后, 储藏,提交 git add . && git commit -m "开发完毕" # 切换到 dev 分支 git checkout dev # 此功能sp上司不用了, 就需要删除这个分支 git branch -D feature-vulcan # 大写 D, 即可删除 复制代码
# 查看远程库的信息 git remote # 详细的信息 git remote -v origin git@github.com:username/WorkCentent.git (fetch) origin git@github.com:username/WorkCentent.git (push) # 上面显示了,可以抓取和推送的分支. 如果没有推送权限,就看不到 push 地址 # 推送分支 到 marter git push origin master # 同步远程分支到本地 git checkout -b dev origin/dev 复制代码
git log --pretty=oneline 592f634468af11098f9f4b8e0d47bffe0b144642 (HEAD -> master, origin/master) :penguin: 添加 Git 配置 c74abfe70b1170dbd727717ef823a2abdea66bfb :fire: 提交工作内容 b07144b5e7df4b30416c7b460a12d86c61690c0d :tada: :tada: :tada: Typora 首次提交 # git log 查看提交记录 # HEAD 表示当前本版, 前面一串数字,就是提交id. 要退回上个版本, 就使用: git reset --hard HEAD^ # 上上个版本使用: git reset --hard HEAD^^ # 上100个版本使用: git reset --hard HEAD~100 # 也可以使用 提交id 退回到某个版本, 或者返回之前的某个版本记录 git reset --hard 592f634 复制代码
git reflog # git 会记录每一次的命令 复制代码
# 查看修改, 工作区与版本库最新版本的区别 git diff # 查看某个文件 git diff HEAD -- README.md 复制代码
# 提交之前, 丢弃工作区的修改 git checkout -- file 复制代码
# git status => git st git config --gloval alias.st status # git checkout => git co git config --global alias.co checkout # git commit => git cm git config --global alias.cm commit # git branch => git br git config --global alias.br branch # git log ... => 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" 复制代码
是不是意犹未尽?
Git 的世界相当庞大, 如果诸位看官想系统学习关于祂的知识. 非常乐意奉上收藏已久的几个网站, 我想看完你会有所收获的:
人心有一种恼人的倾向, 即只把压倒他的东西称作命运 -阿尔贝·加缪 -