导图社区 Git命令
学习有很多方式,使用合适的工具能事半功倍。Git版本控制是很多大公司开发中必备的工具。Git命令整理出来给大家使用。欢迎你指正。
编辑于2020-07-31 15:38:36Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。
平和保存和搜索的一些好用的网站,分享一波,好用拿走。
社区模板帮助中心,点此进入>>
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。
平和保存和搜索的一些好用的网站,分享一波,好用拿走。
Git命令
1. Git配置相关
1.1. 配置全局账户(该账户对所有的Git仓库都有效)
1.1.1. git config --global user.name '你的账户名称'
1.1.2. git config --global user.email '你的 Email'
1.2. 配置局部账户(该账户只对当前Git仓库有效)
1.2.1. git config --local user.name '你的账户名称'
1.2.2. git config --local user.email '你的 Email'
1.3. 查看相关配置情况
1.3.1. 查看 global 类型的配置情况
1.3.1.1. git config --global --list
1.3.2. 查看某个仓库下的配置情况
1.3.2.1. git config --local --list
1.4. 拉取远程Git到本地并创建本地仓库
1.4.1. git clone http://....git
2. 本地基本操作
2.1. 基本操作
2.1.1. 查看变更情况
2.1.1.1. git status
2.1.2. 查看当前工作分支
2.1.2.1. git branch -v
2.1.3. 切换分支
2.1.3.1. git checkout 指定分支的名称
2.1.4. 把当前目录及其子目录下所有变更都加入到暂存区
2.1.4.1. git add . // 注意, add 后⾯面是⼀一个 '.';
2.1.5. 把仓库内所有变更都假如到暂存区
2.1.5.1. git add -A
2.1.6. 把指定文件添加到暂存区
2.1.6.1. git add 文件1 文件2 ... 文件n
2.1.7. 创建正式的 commit,也就是把当前的数据提交上去
2.1.7.1. git commit
2.2. 比较差异
2.2.1. 比较某文件工作区和暂存区的差异
2.2.1.1. git diff 某⽂文件
2.2.2. 比较某文件暂存区和 HEAD 的差异
2.2.2.1. git diff --cache 某⽂文件
2.2.3. 比较工作区和暂存区的所有差异
2.2.3.1. git diff
2.2.4. 比较暂存区和 HEAD 的所有差异
2.2.4.1. git diff -cache
2.3. 暂存区与工作区之间回滚
2.3.1. 把工作区指定文件恢复成和暂存区一样
2.3.1.1. git checkout ⽂文件1 ⽂文件2 ... ⽂文件n
2.3.2. 把暂存区指定文件回复和 HEAD 一样
2.3.2.1. git reset 文件1 文件2 ... 文件n
2.3.3. 把暂存区和工作区所有文件恢复成和 HEAD 一样
2.3.3.1. git reset --hard
2.3.4. 用 difftool 比较任意两个 commit 的差异
2.3.4.1. git difftool commit1 commit2
2.3.5. 注意,从工作区回滚到暂存区则用 checkout ,否则用 reset
2.4. 其他
2.4.1. 查看哪些文件没有被Git管控
2.4.1.1. git ls-files --others
3. 加塞临时文件
3.1. 把未处理理完的变更更先保存到 stash 中
3.1.1. git stash
3.2. 临时任务处理完后继续之前的工作
3.2.1. git stash pop // pop 相当于栈的出栈和⼊入栈⼀一样,把之前的任务弹出来
3.2.2. git stash apply // 和 pop 不不同的是, apply 相当于从栈顶把任务取出来,但是不不过从栈中把任务移除
3.3. 查看所有的 stash
3.3.1. git stash list
3.4. 取回某次 stash 的变更更
3.4.1. git stash pop stash @{数字n}
4. 修改个人分支历史
4.1. 修改最后⼀一次 commit
4.1.1. 1、在工作区中修改文件
4.1.2. 2、 git add
4.1.3. 3、 git commit --amend
4.2. 修改中间的 commit(假设代号为 X)
4.2.1. 1. git rebase -i X前面的⼀一个 commit 的 id
4.2.2. 2. 在工作区修改文件
4.2.3. 3. git add
4.2.4. 4. git rebase --contiue
5. 查看变更日志
5.1. 当前分⽀支各个 commit ⽤用⼀一⾏行行显示
5.1.1. git log --online
5.2. 显示最近的 n 个 commit
5.2.1. git log -n
5.3. 用图示显示所有的分支历史
5.3.1. git log --online --graph --all
5.4. 查看涉及到某文件变更的所有 commit
5.4.1. git log 某⽂文件
5.5. 某文件各行最后修改对应的 commit 以及作者
5.5.1. git blame 某文件
6. 分支与标签
6.1. 创建新分支
6.1.1. 基于当前分支创建新分支
6.1.1.1. git branch 新分支
6.1.2. 基于指定分支创建新分支
6.1.2.1. git branch 新分支 已有分支
6.1.3. 基于某个 commit 创建分支
6.1.3.1. git branch 新分支 某个 commit 的id
6.1.4. 创建分支并且切换到该分支
6.1.4.1. git chechout -b 新分支
6.2. 列出分支
6.2.1. 列出本地分支
6.2.1.1. git branch -v
6.2.2. 列出本地和远端分支
6.2.2.1. git branch -av
6.2.3. 列出远端所有分支
6.2.3.1. git branch -rv
6.2.4. 列出名称符号某样式的远端分支
6.2.4.1. git branch -rv -l '某样式'
6.3. 删除分支
6.3.1. 安全删除本地某分支
6.3.1.1. git branch -d 要删除的分支
6.3.2. 强行删除本地分支
6.3.2.1. git branch -D 要删除的分支
6.3.3. 删除已合并到 master 分支的所有本地分支
6.3.3.1. git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d
6.3.4. 删除远端 origin 已不存在的所有本地分支
6.3.4.1. git remote prune origin
6.3.5. 打标签:从 commit 打上标签
6.3.5.1. git tag 标签名 commit的id
7. 两分支之间的集成
7.1. 把 A 分支合入到当前分支,且为 merge 创建 commit
7.1.1. git merge A分支
7.2. 把 A 分支合入到 B 分支,且为 Merge 创建 commit
7.2.1. git merge A分支 B分支
7.3. 把当前分支基于B分支做 rebase以便把B分支合入到当前分支
7.3.1. git rebase B分支
7.4. 把A分支基于B分支做rebase,以便把B分支合入到A分支
7.4.1. git rebase B分支 A分支
7.5. 用 mergetool 解决冲突
7.5.1. git mergetool
8. 和远端交互
8.1. 列出所有 remote
8.1.1. git remote -v
8.2. 增加 remote
8.2.1. git remote add url地址
8.3. 删除 remote
8.3.1. git remote remove remote的名称
8.4. 改变 remote 的name
8.4.1. git remote rename 旧名称 新名称
8.5. 把远端所有分支和标签的变更都拉到本地
8.5.1. git fetch remote
8.6. 把远端分支的变更拉倒本地,且 merge 到本地分支
8.6.1. git pull remote名称 分支名
8.7. 把本地分支 push 到远端
8.7.1. git push remote名称 分支名
8.8. 删除远端分支
8.8.1. git push remote --delete 远端分支名
8.8.2. git push remote:远端分支名
8.9. 向远端提交指定标签
8.9.1. git push remote 标签名
8.10. 向远端提交所有标签
8.10.1. git push remote --tags