Git 常用命令(更新中)

总结了一下,目前比较比较常用的 Git 命令。即使在平常工作,我们使用的都是如 SourceTree 等图形化工具,学习好命令,还是能帮助我们更深入使用和理解 Git 的。这里是学习资料

Git 配置

// 设置用户名
git config user.name 'Your name'
// 设置邮箱
git config user.email 'Your email'
// 有效范围:当前 git 仓库
git config --local user.name 'Your name'
// 有效范围:全局
git config --global user.name 'Your name'
// 设置命令的快捷操作
git config —local alia.newName 'cmd'
(如:git config --local alia.last 'log -1')
// 查看配置列表
git config --list --local
git config --list --global

Git 搭配常用的命令行

// 切换到具体某个目录
cd 完整目录名
// 切换到上一级目录
cd ../
// 展示当前目录文件
ls -al
// 打印当前目录名 print work directory
pwd
// 打印文件内容
cat 目录名
// 进入 edit 中,按 is 进入编辑模式
// 按 esc 退出编辑模式
// :wq 表示保存并退出

Git 基本操作

// 初始化 git 仓库
git init 
// 将工作区指定文件加入暂存区
git add newFile
// 将当前工作区所有修改文件加入暂存区
git add .
// 将暂存区修改进行提交
git commit 'commit message'
// git add 和 git commit 两个操作合二为一
git commit -am 'commit message'

// 查看当前分支状态
git status

// 文件重命名
git mv old_name new_name

// 文件删除
git rm filename

// 查看某个哈希值 代表类型
git cat-file -t hash_value
// 查看某个哈希值 具体内容
git cat-file -p hash_value

分支管理

// 创建并切换到分支(以当前所在分支为基准创建)
git checkout -b new_branch_name
// 创建并切换到分支(以指定的 commit_id 为基准创建)
git checkout -b new_branch_name commit_id
// 创建并切换到分支(以指定的分支为基准创建)
git checkout -b new_branch_name old_branch_name

// 删除分支
git branch -d branch_name
// 强制删除分支
git branch -D branch_name

// 切换分支
git checkout  branch_name

// 查看所有分支以及当前所在分支
git branch
// 查看所有分支以及当前所在分支,此外还有每个分支的最新一条 commit message
git branch -v

// 合并分支,当 A 分支中变更合并到当前分支
git merge A
// 合并分支,当 A 分支中变更合并到 B 分支
git merge A B 

变基

// 变基(将当前分支变基到 分支 b 上)
git rebase b
// 交互式变基(将当前分支变基到 分支 b 上,并允许修改需要变基的 commit message,或者调整 commit 顺序等等)
git rebase -i b
// 允许将指定的某个 commit 的修改应用到当前分支(rebase 的弱化版)
git cherry-pick commit_id 
// 变基过程如果有冲突,可以选择解决冲突并继续或者停止变基
git rebase -continue
git rebase -abort

// 如何撤销 rebase
// 1 通过 git reflog 查看 HEAD 的所有变动情况,找到变基前的 old_commit_id
git reflog
// 2 根据 old_commit_id 执行重置
git reset --hard old_commit_id

diff

// 查看工作区和暂存区的不同
git diff
// 查看暂存区和当前分支的不同
git diff --staged
// 查看具体某个文件的不同
git diff — fileName
// 查看两个不同 commit 的 某文件的不同
git diff commit_id1 commit_id2 filename

日志

// graph 表示图形化 
// all 代表显示所有分支 
// oneline 表示只显示一行
git log --graph --all --oneline

// 有时候 git log 行数太多,需要按 q 键才可以退出查看模式

代码回滚

/// 提交层面

// 删除原先提交历史(xx 可以是 commit_id、分支名、HEAD~2 头指针之类)
git reset xx
等效于 
git reset --mixed
// soft mixed hard 
// soft 只重置了 commit,修改仍存在于暂存区和工作区,
// mixed 只存在于工作区,
// hard 全部重置

// 新增一个新的提交,以覆盖
git revert xx

/// 文件层面

// 将文件从 暂存区移除
// soft mixed hard 没有区别
git reset HEAD~2  fileName

// 丢弃工作区的修改
git checkout -- fileName
等效于
git checkout HEAD fileName
// 将工作区恢复到上一个提交的样子
git checkout HEAD~2 fileName
// 丢弃工作区所有修改
git checkout -- .

标签

// xxx 可以是 分支名、commit_id 
// 打 tag  
git tag -a v1.2 xxx

// 删除 tag 
git tag -d xxx

Stash

// 存储当前修改
git stash
// 展示存储列表
git stash list
// 恢复存储中的修改(如果有多个,默认恢复最新的一个)
git stash apply
// 恢复并删除
git stash pop
// 清除所有暂存
git stash clear 

忽略文件

// 如何将已上传的文件,进行忽略?

// 1 新建 .gitignore,将想要忽略的文件名写入
// 2 取消追踪
git rm -- cached fileName

远程

// 克隆已有的远端工程
git clone address
// 同步远端仓库,并且没有合并到本地分支中
git fetch
// 同步远端分支,并同步到本地分支
git pull
// 拉取同步 并变基
git pull --rebase
// 推送
git push

// 添加远程仓库  upstream 是指定的仓库名
git remote add upstream address

引用

// 显示 HEAD 祖父节点的提交
git show HEAD~2
// 如果 HEAD 是一个合并分支,显示第2个父节点的提交
git show HEAD^2

警告

不要对已经上传到远程服务器的提交历史,实施变基操作,这会造成协作者的困惑。
除此之外

// 同理,强制 push 在协作环境下,也尽量避免使用。
git push —force
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git c...
    LOVE_晴天阅读 2,352评论 0 10
  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 2,117评论 0 18
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,994评论 0 11
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,976评论 0 9
  • 切换JDK java version "1.8.0_144" JDK 下载地址: 链接:https://pan...
    9九9阅读 1,013评论 2 0