• 作者:老汪软件技巧
  • 发表时间: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__git权限控制

版本操作

// 回退到上一个版本已提交的状态
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命令返回的错误信息。

操作方式相关文章