300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > GIT命令行的一些基本操作

GIT命令行的一些基本操作

时间:2024-04-06 16:22:01

相关推荐

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】的命名行下面执行

以下命令都好用

pwdcdls// 打开之后的默认目录是 /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.WorkingWorking Tree 当前的工作区域2.Stage(先把代码添加到这里,然后提交)Index/Stage 暂存区域,和git stash命令暂存的地方不一样。使用git add xx,就可以将xx添加近Stage里面3.RepositoryRepository 提交的历史,即使用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 模式进行合并,如果【不符合】条件(并非当前分支的直接后代),则会拒绝合并请求并且推出

①②③三种模式英文

/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.

---

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。