- 作者:老汪软件技巧
- 发表时间:2024-09-13 17:01
- 浏览量:
工作场景使用提示基础用法自定义设置
git config --global user.name "userName" // 设置git全局用户名称
git config --global user.email "userEmail" // 设置git全局用户邮箱
git config --global color.ui true // 设置颜色 eg: 文件名等会高亮显示
.* // 排除所有.开头的隐藏文件
*.class // 排除所有.class文件
!.gitignore // 不排除.gitignore文件
!App.class // 不排除App.class文件
例如在Windows环境自动在有图片的目录下生成隐藏的缩略图文件,如果有自定义目录,目录下就会有Desktop.ini文件;在Python编译时会产生.pyc、.pyo、dist等文件或目录。此时可设置.gitignore文件如下:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
但是当我们已经设置过.gitignore文件,但又确实想上传被.gitignore文件过滤条件筛选掉的文件时我们可以使用-f强制上传,同时可以使用命令查看.gitignore文件中哪个规则过滤了该文件。
git add -f // 强制添加文件至暂存区
git check-ignore -v // 使用命令查看哪个规则过滤了文件
git config --global alias.st status // 设置别名后命令行 git st === git status
git config --global alias.unstage 'reset HEAD' // git unstage === git reset HEAD
// 可以尝试配置一下 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的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。而我们所有配置文件项都存在于.git/config文件中,别名则在文件的[alias]选项后,要删除别名配置即可删除行。
基本操作
git init // 初始化版本库
git add // 将文件添加到仓库 工作区->暂存区
git commit -m 'commit desc' // 将文件提交到仓库 暂存区->远端 eg: 可多次添加文件然后一次性提交到仓库
git status // 查看仓库当前状态
git diff // 查看文件上一次的修改内容
git diff HEAD -- // 查看当前文件与上一次提交文件的对比内容
git log // 查看版本控制提交记录
git log --pretty=oneline // 查看版本控制提交记录 - 简化版
git log --graph // 查看版本控制中分支合并图
版本操作
// 回退到上一个版本已提交的状态
git reset --head HEAD^ // 此处HEAD^表示上一版本 eg:HEAD^^为上两个版本,HEAD~100为往上100个版本
// 回退到上一个版本未提交的状态
git reset --soft HEAD^
// 回退到上一个版本已添加但未提交的状态
git reset --mixed HEAD^
// 回退到某个commit id版本已提交的状态
git reset --head commitID // commitID可不写全,git会自行补全,但填入值需可确定其唯一性
git checkout -- // 撤销工作区的修改
git reset HEAD // 撤销暂存区的修改
git rm // 手动删除文件后 效果与git add 类似
git reflog // 记录版本控制每一次命令操作记录
远程仓库
git clone // 克隆远程仓库 url为仓库地址
git branch // 查看当前分支信息
git branch // 创建分支
git branch -d // 删除分支 eg: 该分支还未上传到远程时可删除
git branch -D // 删除分支 eg: 该分支已上传到远程但未合并分支
git branch --set-upstream-to= // 指定本地分支与远程分支的链接
git checkout // 切换工作区的分支 eg: 副作用可以还原工作区的删除及修改
git checkout -b // 创建分支并切换到该分支
git switch // 切换分支
git switch -c // 创建分支并切换到该分支
git push -u origin // 其中 -u 表示首次推送并将分支与远程库相关联
git push // 推送本地分支branchName内容至远程分支remoteName上
git pull // 拉取远程分支remoteName内容更新至本地分支branchName内
git merge // 将分支内容合并到当前分支
git merge --no-ff -m 'commit desc' // --no-ff参数表示以用普通模式合并
git remote // 查看远程库信息
git remote -v // 显示远程库详细信息
git remote rm // 删除远程分支remoteName eg: 此处只是删除本地与远程库的关联,远程库依旧存在于git
提升操作
git cherry-pick commitID // 将commitID提交操作上所做的修改合并到当前分支
git stash // 将工作区的修改内容清空并暂存到栈中
git stash list // 查看栈中缓存的修改操作列表
git stash apply // 将栈中栈首的修改还原到工作区 eg: apply操作还原后栈中的内容并不删除
git stash apply stash@{0} // 将栈中index为第0个的修改还原到工作区
git stash drop // 将栈中的的修改删除
git stash pop // 将栈中栈首的修改还原到工作区同步删除栈中该修改信息
git rebase // 把本地未push的分叉提交历史整理成直线,使得查看历史提交的变化时更容易
SourceTree使用
以图形界面操作Git,省去了敲命令行的过程,对于常用的操作,例如提交、分支、推送等操作来说非常的方便。但在出错时,返回的依旧是Git命令返回的错误信息。
操作方式相关文章