GIT命令行的一些基本操作
目录
■基础
■扩展 (重要)
■★★★===git Hub 时的命令行操作 (登录git【命令行】)
・★★===他命令 // Git
・★★===查看多个版本之间修改的代码
・★===去掉以及保存的密码
・Git 工作的 三个区域
・Git Reset 三种模式
・Git Reset Eclipse 中的操作
・Git Merge
・merge 时 【スカッシュ(squash)】选项---简介
・merge 时 【スカッシュ(squash)】选项---具体操作
・merge 时 【フォワード オプション】选项---三种设置
①【O】・--ff(默认)// Fast-forward // git merge
②【M】--no-ff // non-Fast-forward // git merge
③【N】--ff-only Fast-forward 模式:
・Git Merage 注意点
・Git Merge Eclipse中的操做
・Git Merge操作 (英文解释 含 图片说明)
■基础
■前言1
Git是一个分布式的版本控制系统,它最早是在Linux上开发的,被用来管理Linux核心的源代码,
与集中式的版本控制系统(CVS,SVN)不同的是,
每一个使用者,都可以通过克隆的方式,在本地建立版本仓库。(克隆共有仓库到本地)
再对本地库进行操作(commit)时,不需要网络连接。
通过PUSH方式,反映到共有仓库中。
■前言2
之前一直使用Eclipse操作git,今天有一个需求,要修改已经PUSH的分支(Branch)的名字。
为了方便,于是命令行操作。
■基本命令
git add # 将工作区的修改提交到暂存区
git commit # 将暂存区的修改提交到当前分支
git reset # 回退到某一个版本
git pull # 从远程更新代码
git push # 将本地代码更新到远程分支上
git reflog # 查看历史命令
git status # 查看当前仓库的状态
git log # 查看提交历史
git revert # 回退某个修改
■以上命令的具体使用
(如果命令行不识别,自己在窗口把git的bin等(运行的时候说一个dll找不到,所在目录也加到Path中了)加到环境变量的Pash里面,然后到git仓库的目录下面,执行下面命令。)
git branch // 查看本地分支 (OK)
git branch -r // 查看远程分支 (OK)
git reflog show --
date=iso branch_name // 查看分支创建时间(可以查看远程分支的创建时间)
(OK)
git checkout master // 本地进入master分支
git checkout -b frommaster // 以master为源创建分支frommaster
git checkout develop // 本地进入develop分支
git checkout -b fromdevelop // 以develop为源创建本地分支fromdevelop
git push origin fromdevelop // 将本地fromdevelop分支作为远程fromdevelop分支
git commit –m “提交代码时的注释”
git checkout master // 合并分支 to Master step1
git merge newBranchName // 合并分支 to Master step2
git reset --hard <commit-id> // 撤消上一次commit的内容
■修改Branch名字(操作失败!)
git checkout oldBranchName // 本地进入oldBranchName 分支
git bran
重命名本地分支 (OK)
git push origin :oldBranchName //删除远程分支(NG)
(git push --delete origin oldBranchName // 删除远程分支 方法2) (NG)
git push origin newBranchName //PUSH本地分支 (NG,命令行看,是成功了,远程仓库中能看到(git branch -r),但是实际是失败了!别人PULL不下来。看了远程仓库git下面的文件,有文件被改动,但是各个分支的目录下面,没有本次新建的分支)
(git push origin newBranchName :newBranchName // PUSH本地分支 方法2)
git branch -vv // 查看本地分支和远程分支的跟踪关系
git branch --set-upstream-to=origin/remote_branch your_branch //新建分支后,与线上分支进行跟踪关联
■注意事项
备份git仓库的时候,
不要复制备份,会造成有的文件夹的日期改变。
直接把操作之前的git仓库压缩成zip文件,进行备份。
■扩展 (重要)
■★★★===git Hub 时的命令行操作 (登录git【命令行】)
可以尝试在 【Git Bash】的命名行下面执行
以下命令都好用
pwd
cd
ls// 打开之后的默认目录是 /c/Users/yourUserName// 跳转到对应的 工程目录 (有「.git]文件夹)git branchgit branch -r// 获取最新代码
git pull//执行此命令后,会提示你输入用户名和密码
UserName for 'http://XXXXXXXX':
Password for 'http://XXXXXXXX':
// 如果已经是最新代码,则会显示下面的信息
Already up-to-date.
===
・★★===他命令 // Git
git reset --soft回退版本git commit // 提交到本地仓库git push // 提交到远程仓库git branch // 查看分支git log // 查看提交记录
git log -2 查看最近2次的提交历史记录git status // 查看当前在git checkout branch_name // 切换到你要合并的分支,并拉取最新的代码
git checkout -b feature556 // 从master创建新的分支 // 参数b 创建新的分支更多回退命令:
git reset --hard HEAD^ 回退到上个版本git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前git reset --hard commit_id 退到/进到,指定commit的哈希码(这次提交之前或之后的提交都会回滚)
・★★===查看多个版本之间修改的代码
git pull 显示密码错误(去控制面板的凭据管理器中找到windows凭据,将git的密码更新一下)
①git config --list // 确认设置是否正确
②去控制面板的凭据管理器中找到windows凭据,将git的密码更新一下git diff --name-only commitID_001 commitID_002
・★===去掉以及保存的密码
---
---
・Git 工作的 三个区域
1.Working
Working Tree 当前的工作区域2.Stage
(先把代码添加到这里,然后提交)
Index/Stage 暂存区域,和git stash命令暂存的地方不一样。
使用git add xx,就可以将xx添加近Stage里面3.Repository
Repository 提交的历史,即使用git commit提交后的结果
---
・Git Reset 三种模式
①git reset --soft
②git reset --mixed
③git reset --hard
git reset --hard
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id 退到/进到,指定commit的哈希码(这次提交之前或之后的提交都会回滚)
---
git reset 的三种模式的使用场景_雕牌咸鱼的博客-CSDN博客_git reset 三种模式
---
今天使用使用git merge 代码,报错了,merge失败,
使用git的Reset功能恢复(选择第一个)没有成功。 (工程文件夹右侧,显示 【マージ済み (merge完了)】branchm名)
选择第三个成功。
---
・Git Reset Eclipse 中的操作
有的时候,需要选择Head,才能达到我们想要恢复的效果。(黄色标记部分)
・Git Merge
・merge 时 【スカッシュ(squash)】选项---简介
(多个commit记录合并成一个提交记录)
// 目前的工作中,因为要保留所有履历,一般不会采用此选项
git merge コマンドを実行するときに、
--squash オプションを指定すると、
ブランチ先でのすべてのコミットを1つにまとめて、
現在チェックアウトしているブランチにステージングすることができます。
ブランチでの変更をマージする(直接マージ、スカッシュマージ、チェリーピック) | まくまくGitノート
squash 英 [skwɒʃ] 美 [skwɔʃ] スカッシュ
n. 壁球;果汁饮料;南瓜属植物;拥挤
v. 把…压扁;受挤压;挤入;镇压;使沉默
・merge 时 【スカッシュ(squash)】选项---具体操作
1. git checkout master
切换至 master分支
2. git merge origin/develop --squash
3. git commit -m "问题修改--测试ok" // 履历中,只保留这一条履历
・merge 时 【フォワード オプション】选项---三种设置
git merge オプションの --ff, --no-ff, --ff-only の違い - yu8mada
--ff(默认), --no-ff, --ff-only
git merge --ff/--no-ff/--ff-only 三种选项参数的区别 - 小二十七 - 博客园
①【O】・--ff(默认)// Fast-forward // git merge
Fast-forward 是指 Master 合并 Feature 时候发现 Master 当前节点一直和 Feature 的根节点相同,
没有发生改变,那么 Master 快速移动头指针到 Feature 的位置,
所以 Fast-forward 并不会发生真正的合并,【只(only)】通过移动指针(pointer)造成合并的假象,
这也体现 git 设计的巧妙之处。
(如果不匹配则执行 --no-ff(non-Fast-forward) 合并模式)
----
通俗解释 8.Git merge之 Fast Forward和 No Fast Forward(--no-ff方式)解析_扛麻袋的少年的博客-CSDN博客
Fast Forward意为"快进模式"。主要使用在多分支合并的情况下。即:当前分支合并另一个分支的时候,如果合并的过程中没有Conflict冲突的时候,则会通过直接移动两个分支的指针,来达到合并的过程,这个过程就叫做Fast Forward。
----
②【M】--no-ff // non-Fast-forward // git merge
当合并的分支跟 master 不存在共同祖先节点的时候,这时候在 merge 的时候 git 默认无法使用 Fast-forward 模式,
git自己【Merge代码】
③【N】--ff-only Fast-forward 模式:
只会按照 Fast-forward 模式进行合并,如果【不符合】条件(并非当前分支的直接后代),则会拒绝合并请求并且推出
①②③三种模式 英文
https://blog.csdn.net/xiaozaq/article/details/82862916
・Git Merage 注意点
当出现rejected – non-fast-forward时,
不要选最下面的Force overwirte branch in remote if exists and have deverged,否则本地仓库会覆盖远程仓库,造成覆盖别人代码的严重后果
・rejected 英 [rɪˈdʒɛkt; ˈriːdʒɛkt] // adj. 被拒的;不合格的 // git merge
・Git Merge Eclipse中的操做
Eclipse中的Git使用之Branch创建,Merge_sun0322-CSDN博客
一般按照如下方式选择(黄色标记部分)
・Git Merge操作 (英文解释 含 图片说明)
git merge和git merge --no-ff的区别_如果我年少有为不自卑-CSDN博客
--ff
When the merge resolves as a fast-forward, only update the branch pointer, without creating a merge commit. This is the default behavior.
--no-ff
Create a merge commit even when the merge resolves as a fast-forward. This is the default behaviour when merging an annotated (and possibly signed) tag.
--squash
--no-squash
Produce the working tree and index state as if a real merge happened (except for the merge information), but do not actually make a commit, move the HEAD, or record $GIT_DIR/MERGE_HEAD (to cause the next git commit command to create a merge commit). This allows you to create a single commit on top of the current branch whose effect is the same as merging another branch (or more in case of an octopus).
With --no-squash perform the merge and commit the result. This option can be used to override --squash.
---
GIT命令行的一些基本操作相关推荐
- 如何用git命令行上传本地代码到github
如何用git命令行上传本地代码到github 2016年09月19日 16:10:36 阅读数:9337 注意:安装的前提条件是配置好git的相关环境或者安装好git.exe,此处不再重点提及 上传的 ...
- [MySQL]命令行工具和基本操作
[MySQL]命令行工具和基本操作 一 MySQL命令行工具 (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有GNU readline功能).它支持交互式 ...
- git命令行完全解读
BY 张建成(prettyEcho@github) 除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享 原文地址deep.js , 欢迎 评论 和 star ?? 欢迎 ...
- 关于使用 git 命令行来和“码云”账号上的项目互通过程的基础步骤
前提:已经有码云账号,电脑已经安装了git工具. (1)在码云账号上登陆自己的账号,创建一个新的项目. (2)在自己的本地磁盘下随便创建一个文件夹(例如起名为:mayun),用来存放从码云上拉下来的项 ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- 如何使用git命令行上传项目到github
参考文献: 如何使用git命令行上传项目到github 感谢楼主分享!
- Git命令行介绍和使用说明(持续更新)
Git命令行介绍和使用说明(持续更新) Git命令行介绍和使用说明(持续更新) 文档名称 Git命令行介绍和使用说明会 创建时间 2012/8/23 修改时间 2012/8/23 创建人 Baifx ...
- linux tig不支持中文,tig — 让 git 命令行可视化
tig 是一款优化 git 命令行的工具,使 git 命令行更加的便捷人性化 .如果用习惯了,会上瘾. image 基础 安装 在 Mac 上最简单的方式是使用 Homebrew: brew inst ...
- gitBash快速清屏,git命令行操作,快速清屏,清屏
## ** gitBash快速清屏,git命令行操作,快速清屏,清屏 ** 快捷键 点赞去啊!!!!!!!!!!!!!
最新文章
- UML 建模大佬养成记(Java版)
- jquery Syntax error, unrecognized expression:的解决方法
- 一个浏览器插件,测试xpath的工具
- 计算机网络是如何通信的【一】
- svm预测结果为同一个值_实战:用SVM算法进行乳腺癌预测
- 工作不能混日子,给自己留言
- 智能会议系统(25)---linphone代码分析
- 指针使用前应先初始化
- 串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包
- 【CCCC】L2-010 排座位 (25分),,并查集+二维矩阵判定关系
- 我买了个阿里云服务器并在上面部署了一个项目
- 15个Java的报表工具简介
- iOS底层探索之多线程(十一)—GCD源码分析(调度组)
- 树形动规_(访问艺术馆)
- python webkit内核_GitHub - yunate/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
- 关于axure 8在发布的时候显示:Unable to connect to Axure Share.的问题
- IVL和SVL的区别
- 计算10光年是多少米java_1光年是多少米,9.46×10^15米(最快的火箭需飞108000年)...
- finalshell链接不上虚拟机提示一直登录或链接不上怎么办
- EtherCAT 之邮箱