常见Git命令汇总

前言

==

最近,有朋友私信让我就git 使用做篇文章分享,分享一下我在日常工作中是如何使用git的。我当场就收费两包辣条,最后讨价还价,朋友用1.5包辣条骗到了这篇文章,等他欣喜的走了我打算直接分享出来,气死这个吝啬鬼,当然最终还是希望本文对你有所帮助。

基础概念

====

首先我们简单的概述一下gitgit有三个分区,分别是:

  • 工作区(Working Directory):开发者直接编辑的地方,只要文件发生了更改,在这就会显示出来,包含追踪与未追踪文件。通过git add将工作区文件添加到暂存区。

  • 暂存区(Stage | Index):数据暂时存放的区域,通过git commit将暂存区文件添加到本地版本库。

  • 本地版本库(Local Commit History):存放所有已经提交的数据,通过git push推送到远程仓库。

基础命令

====

git status


查看工作区状态,如果跟踪的文件有做任何修改,都可以通过该命令来发现。 如:这里通过git status就发现在develop分支上,README.md文件发生了更改。

jere@JereMBP GitTest (develop) $ git status
On branch develop
Changes not staged for commit:
  (use git add <file>... to update what will be committed)
  (use git restore <file>... to discard changes in working directory)
	modified:   README.md

no changes added to commit (use git add and/or git commit -a)

git diff


查看具体修改内容,比如在上一步中,我们通过git status发现README.md文件发现了更改,这时我们可以通过git diff <file>来查看具体的修改内容:

jere@JereMBP GitTest (develop) $ git diff README.md
diff --git a/README.md b/README.md
index 7eb4917..3d6d2a4 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,5 @@
 # GitTest
 For git command practice
+
+do something on develop branch
+
jere@JereMBP GitTest (develop) $

另外,你也可以直接使用git diff,这样就会显示所有文件的所有修改内容。

git checkout


切换分支,比如我在feature-1分支上切换到develop分支上:

jere@JereMBP GitTest (feature-1) $ git checkout develop 
Switched to branch 'develop'
jere@JereMBP GitTest (develop) $

在当前分支节点上新建一个分支并且切换过去,比如我在 main 分支上创建一个develop新分支并且切换过去:

jere@JereMBP GitTest (main) $ git checkout -b develop
Switched to a new branch 'develop'
jere@JereMBP GitTest (develop) $ git branch
* develop
  main

放弃工作区所作的修改,类似git restore <file>...,比如:我现在想放弃README.md中的修改

jere@JereMBP GitTest (develop) $ git status
On branch develop
Changes not staged for commit:
  (use git add <file>... to update what will be committed)
  (use git restore <file>... to discard changes in working directory)
	modified:   README.md
	modified:   dev-file.txt

no changes added to commit (use git add and/or git commit -a)
jere@JereMBP GitTest (develop) $ git checkout README.md
Updated 1 path from the index
jere@JereMBP GitTest (develop) $ git status
On branch develop
Changes not staged for commit:
  (use git add <file>... to update what will be committed)
  (use git restore <file>... to discard changes in working directory)
	modified:   dev-file.txt

no changes added to commit (use git add and/or git commit -a)
jere@JereMBP GitTest (develop) $

另外,如果你想放弃所有工作区中的修改,可以使用git checkout .来放弃所有修改。

git branch


查看本地分支情况:

jere@JereMBP GitTest (main) $ git branch
* main

查看远程仓库分支情况:

jere@JereMBP GitTest (develop) $ git branch --remote
  origin/HEAD -> origin/main
  origin/main

在当前节点上创建一个新分支,比如我在 develop 上创建一个feature-1新分支:

jere@JereMBP GitTest (develop) $ git branch feature-1
jere@JereMBP GitTest (develop) $ git branch
* develop
  feature-1
  main

另外,关于创建分支还有一些常用的操作可以了解一下,比如:

# 基于某个分支上开出新分支
$ git branch <new-branch> <base-branch>
# 基于某个提交开出新分支
$ git branch <new-branch> commit_hash
# 基于某个tag开出有新分支
$ git branch <new-branch> v1.1

删除分支

  • 删除本地分支:git branch -d <branch-name>

  • 删除远程分支:git push -d origin <branch-name>

git add


将工作区所作的修改添加到暂存区,如将README.md文件添加到暂存区:

jere@JereMBP GitTest (develop) $ git status
On branch develop
Changes not staged for commit:
  (use git add <file>... to update what will be committed)
  (use git restore <file>... to discard changes in working directory)
	modified:   README.md

no changes added to commit (use git add and/or git commit -a)
jere@JereMBP GitTest (develop) $ git add README.md
jere@JereMBP GitTest (develop) $ git status
On branch develop
Changes to be committed:
  (use git restore --staged <file>... to unstage)
	modified:   README.md

jere@JereMBP GitTest (develop) $

另外,你也可以通过git add .命令,这会将工作区所有的修改内容都添加到暂存区。

git commit


将暂存区中的内容保存到本地工作区,如上一步我们已经将README.md文件添加到了暂存区,接下来就将它保存到本地工作区:

jere@JereMBP GitTest (develop) $ git commit -m 更改README文件
[develop b18e4f1] 更改README文件
 1 file changed, 3 insertions(+)
jere@JereMBP GitTest (develop) $ git status
On branch develop
nothing to commit, working tree clean
jere@JereMBP GitTest (develop) $

另外,你也可以通过git commit -am来进行快速操作,其实它就是git add . & git commit -m的结合体。

git push


将本地文件推送到远程仓库中,如:将上一步已经保存到本地的README.md文件推送到远程仓库:

jere@JereMBP GitTest (develop) $ git push origin develop 
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 371 bytes | 371.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/JereChen11/GitTest.git
   1f7fb80..b18e4f1  develop -> develop
jere@JereMBP GitTest (develop) $

git fetch


查看远程仓库有没有更新,有更新就下载下来,如果没有更新就没有任何反应,如:这里通过git fetch发现远程仓库中main分支有了新提交,所以将其下载了下来。

jere@JereMBP GitTest (develop) $ git fetch 
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/JereChen11/GitTest
   30f049e..d6ff31d  main       -> origin/main
jere@JereMBP GitTest (develop) $ git fetch 
jere@JereMBP GitTest (develop) $

git merge


合并分支,如:在上一步中,我们通过git fetch发现远程 mian 分支有了新提交,所以当前本地main分支是落后的,所以这时候我们就应该将远程 mian 分支合并到我们的本地main分支,来实现两端同步。

jere@JereMBP GitTest (develop) $ git checkout main
Switched to branch 'main'
Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded.
  (use git pull to update your local branch)
jere@JereMBP GitTest (main) $ git merge origin/main 
Updating 30f049e..d6ff31d
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)
jere@JereMBP GitTest (main) $

git pull


拉取远程仓库,如果远程仓库有更新,则会将更新下载下来并合并到当前分支上,相当于git fetchgit merge的结合体。 如:跟上一步同样,这次我们使用git pull来拉取远程 mian 分支上的新提交。

jere@JereMBP GitTest (main) $ git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/JereChen11/GitTest
   55e808c..4a1a531  main       -> origin/main
Updating 55e808c..4a1a531
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)

业务场景

====

除了上面几个基础命令,现在我根据我们平时的业务场景,配合案例再介绍几个指令。

解决冲突


关于冲突,一旦涉及分支合并,且这两个分支有对同一个地方做更改,就会出现冲突。

比如:在上一步中我们将远程mian分支拉取了下来,发现他是对README.md文件做了更改,而我们一开始的时候已经在develop分支上对README.md文件相同位置上做了更改,这时候,如果我们尝试将develop合并到main分支上时,就会出现冲突。

jere@JereMBP GitTest (main) $ git merge develop 
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
jere@JereMBP GitTest (main) $ git status
On branch main
Your branch is up to date with 'origin/main'.

You have unmerged paths.
  (fix conflicts and run git commit)
  (use git merge --abort to abort the merge)

Changes to be committed:
	new file:   dev-file.txt

Unmerged paths:
  (use git add <file>... to mark resolution)
	both modified:   README.md

jere@JereMBP GitTest (main) $

正是README.md文件发生了冲突,我们需要打开该文件来查看具体冲突内容。

# GitTest
For git command practice

<<<<<<< HEAD
chagne README file on the main branch //内容1
=======
do something on develop branch //内容2
>>>>>>> develop

冲突的内容会被<<<<<<<>>>>>>>所包围,中间用=======隔离开,也就如我所注释的分成了内容1内容2两块。

  • 内容1:是当前所在分支节点的内容,也就是mian

  • 内容2:要合并进来分支的内容,也就是develop

选择你要的内容,将<<<<<<<>>>>>>>=======这些隔离符删除掉,并保存,然后执行git addgit commit完成合并。

jere@JereMBP GitTest (main) $ vim README.md 
jere@JereMBP GitTest (main) $ git status
On branch main
Your branch is up to date with 'origin/main'.

You have unmerged paths.
  (fix conflicts and run git commit)
  (use git merge --abort to abort the merge)

Changes to be committed:
	new file:   dev-file.txt

Unmerged paths:
  (use git add <file>... to mark resolution)
	both modified:   README.md

jere@JereMBP GitTest (main) $ git commit -am 解决README冲突
[main 8e08c23] 解决README冲突
jere@JereMBP GitTest (main) $

组员间同步开发进度


在实际项目中,我们都是多人配合协同开发,会将一些需求进行拆分,然后大家同时开发,开发完成后,各自将自己的代码合并到develop分支上。 在这过程中,如果某个组员已经开发完了并且将代码合并到了develop分支,而你还没开发完,但是这时你想同步这个组员的代码,这时应该怎么做呢?

这里我们就可以使用git rebase来做到。

git rebase操作,称之为变基操作,也就是移动你的分支的根节点。

举个例子:

  1. feature-1feature-2 都是基于 develop 同一节点开出来的分支。

  2. 随着开发的进行,feature-1先开发完成,并合并到develop分支。

  3. 此时feature-2利用 git rebase origin develop 来同步feature-1的代码。

jere@JereMBP GitTest (feature-2) $ git rebase origin/develop 
First, rewinding head to replay your work on top of it...
Applying: 添加 feature-22.txt 文件
Applying: 修改feature-22.txt
jere@JereMBP GitTest (feature-2) $

这三个状态的节点分支情况如下图所示:

初始状态

feature-1合并到develop

feature-2同步develop代码

整理合并提交


有时候,我们想对自己的提交进行合并操作。

我们可以通过git rebase -i HEAD~x 来合并(这里 i 的意思为interactive交互,HEAD~x代表要合并HEAD到前x个历史提交,如: HEAD~2为历史的前两个提交,HEAD~4就是历史的前四个提交)。

举个例子: 我们在feature-3分支上对feature-3.txt进行了两次提交修改,分别是598cc68 修改feature-3.txt8561ef3 再次修改feature-3.txt,现在我们要将这两个提交进行合并

  1. 执行 git rebase -i HEAD~2

  2. 这是会自动进入vim,显示如下内容:

pick 598cc68 修改feature-3.txt
pick 8561ef3 再次修改feature-3.txt
...省略...

这里我们要合并这两个提交,所以将第二个pick更改为s,如下:

pick 598cc68 修改feature-3.txt
s 8561ef3 再次修改feature-3.txt
...省略...

保存退出,将自动打开另外一个vim文件,用来修改提交文本信息,如下:

# This is a combination of 2 commits.
# This is the 1st commit message:

修改feature-3.txt
# This is the commit message #2:

再次修改feature-3.txt
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#

这里我们将其修改为最终版本,修改feature-3.txt,保存退出。

jere@JereMBP GitTest (feature-3) $ git rebase -i HEAD~2
[detached HEAD 18296c5] 最终版本,修改feature-3.txt
 Date: Wed Dec 1 10:21:05 2021 +0800
 1 file changed, 2 insertions(+)
Successfully rebased and updated refs/heads/feature-3.
jere@JereMBP GitTest (feature-3) $
  1. 此时,你本地分支已经完成了合并,你尝试将其推送到仓库中时,会发现被拒绝。通过提示可知,拒绝理由是our current branch is behind 你当前分支落后远程分支,这时,我们需要 git push origin feature-3 -f强制推送,完成合并。

jere@JereMBP GitTest (feature-3) $ git push origin feature-3 
To https://github.com/JereChen11/GitTest.git
 ! [rejected]        feature-3 -> feature-3 (non-fast-forward)
error: failed to push some refs to 'https://github.com/JereChen11/GitTest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
jere@JereMBP GitTest (feature-3) $ git push origin feature-3 -f
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 356 bytes | 356.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/JereChen11/GitTest.git
 + 8561ef3...18296c5 feature-3 -> feature-3 (forced update)

这三个状态的节点分支情况如下图所示:

执行 git rebase -i HEAD~2

采用squash合并提交,并修改文本信息

强制推送到仓库

还记得我们将 pick 改为 s 这一步吗?这里的s指的是squash,意思是将该提交挤压合并到上一个提交。 他还有一些其它选项操作可以了解一下:

p, pick <commit> = 使用提交
r, reword <commit> = 使用提交,但是会编辑提交文本信息
e, edit <commit> = 使用提交,在修改完成后,可以通过git commit --amend再次进行修改;修改满意后再使用git rebase --continue
s, squash <commit> = 使用提交,挤压合并到上一个提交
f, fixup <commit> = 类似squash,会挤压合并到上一个提交,但是会忽略修改提交文本信息这一步。

整理提交的必要性 如果你的分支上存在这样的情况:提交1:finish login feature,紧接着后面就是提交2:code review for login feature。 这样的操作其实很正常,也很合理,你在做好功能后,去做了code review,但其实我们完全可以将这两个提交合并成一个提交,方便自己以及同事查看你的代码。

注意:你要在你自己的分支进行操作。

撤销提交


这边撤销提交分为撤销本地提交撤销远程提交

撤销本地提交

当你提交了代码到本地,但此时,你想撤回这个提交,重新编辑修改一下。这时你可以通过 git reset 来实现。

这个撤销分为是否保留修改

  • 保留修改:git reset --soft,你之前所作的更改都在,这也称为最安全的撤销。

  • 舍弃修改:git reset --hard,你之前所作的更改都会消失,所以要谨慎使用。

举个例子: 当前你处于feature-4分支上,你提了一个本地提交第二次修改,这时你想撤销回来继续修改。

jere@JereMBP GitTest (feature-4) $ git reset --soft HEAD~

如果,我直接不要这个第二次修改本地提交,则:

jere@JereMBP GitTest (feature-4) $ git reset --hard HEAD~
HEAD is now at 16960c7 第一次修改

这三个状态的节点分支情况如下图所示:

初始状态

git revert --soft

git revert --hard

撤销远程提交(回滚操作)

当你将你的本地提交推送到了远程仓库中,这时,你发现你完全做错了,你想进行回滚操作。

这时你就需要用到git revert操作。

举个例子: 我在feature-4分支上提了两个提交且都推送到了仓库,分别是第一次修改第二次修改,现在我想进行回滚操作,撤销第二次修改这个提交。

jere@JereMBP GitTest (feature-4) $ git revert HEAD
[feature-4 c73e361] Revert 第二次修改
 1 file changed, 1 deletion(-)

执行命令后,会自动打开一个vim文件来让你修改提交文本信息,默认在开头加上revert 修饰,保存退出,操作结束。

撤销前后这两个状态的节点分支情况如下图所示:

撤销前

撤销后

如图所示,回滚操作后,会多一个revert xxx提交,如果你不想要这个提交,不想让人知道你进行了回滚,你可以使用上面介绍的git rebase -i HEAD~x进行整理合并提交。

另外,你也可以通过git revert <commit_hash>来对指定提交进行回滚,如果遇到冲突就先解决冲突,然后执行git revert --continue继续。

注意:执行回滚操作需要注意环境,如果别人拉了你的代码,这时你再执行回滚操作,那就不好了。

线上出Bug了,紧急修复


讲个故事吧。

经过一段时间的开发,你们的产品终于上线了,版本为V1.0,产品上线后你马上投入到了V1.1版本的需求开发。某天,运营与产品同时过来找你,说刚刚发现线上存在一个很严重的bug,需要紧急修复一下。你马上投入修复工作,经过紧张的排查与测试,最终你修复了这个问题,准备发版。 而此时,你才注意到,你是在develop分支上进行的修复工作,而develope分支已经包含了v1.1的部分功能,这时,怎么把这个紧急修复提交给到V1.0呢?

可以通过git cherry-pick做到,翻译为挑选的意思,将某个提交挑选过来。

如:我们现在要将develop分支上的d818f10 紧急修复线上bug这个提交合并到我们main V1.0上。先切换到main分支上,然后将d818f10这个提交挑选过来合并。

jere@JereMBP GitTest (develop) $ git co main 
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
jere@JereMBP GitTest (main) $ git cherry-pick d818f10
[main 55e808c] 紧急修复线上bug
 Date: Wed Dec 1 15:49:48 2021 +0800
 1 file changed, 2 insertions(+)

这三个状态的节点分支情况如下图所示:

初始状态

develop上修复

将这个修复提交挑选到main

暂时保存手头工作


某天你正在认真的开发需求中,测试过来找你让你帮忙看一个线上问题。此时,你代码也刚写了一半,不想提交,这时怎么办?

此时我们可以通过git stash来暂存我们代码,然后切换到线上环境分支排查问题,解决后,切换回之前分支执行git stash pop继续开发。

如:我现在正在feature-5分支上开发新需求,此时我需要暂存所有更改,切换到main分支排查问题。排查结束,回到feature-5,将暂存取出,继续开发。

jere@JereMBP GitTest (feature-5) $ git status
On branch feature-5
Changes not staged for commit:
  (use git add <file>... to update what will be committed)
  (use git restore <file>... to discard changes in working directory)
	modified:   feature-5.txt

no changes added to commit (use git add and/or git commit -a)
jere@JereMBP GitTest (feature-5) $ git stash
Saved working directory and index state WIP on feature-5: 9bd4e1f 添加 feature-5.txt
jere@JereMBP GitTest (feature-5) $ git status
On branch feature-5
nothing to commit, working tree clean
jere@JereMBP GitTest (feature-5) $ git stash pop
On branch feature-5
Changes not staged for commit:
  (use git add <file>... to update what will be committed)
  (use git restore <file>... to discard changes in working directory)
	modified:   feature-5.txt

no changes added to commit (use git add and/or git commit -a)
Dropped refs/stash@{0} (1ec48d00e8d1bd5c0042d88d1209dbb9051815d4)
jere@JereMBP GitTest (feature-5) $

另外,git stash 还有一些常用操作。

# 保存到stash栈中,并加上自定义message修饰
$ git stash save message
# 列出stash栈中所有元素
$ git stash list
# 应用stash栈中的第x个元素,pop是应用的同时且从栈中删除,而apply则是只应用不删除
$ git stash apply stash@{x}
# 删除stash栈中的第x个元素
$ git stash drop stash@{x}

上线发版啦


当我们产品开发完成,发现上线时,我们需要打个标签来标注一下,以便下次更好的找它。

这时我们就可以通过git tag 标签名来打标签。

举个例子:我们的1.0版本上线了,所以打个v1.0

jere@JereMBP GitTest (feature-5) $ git tag v1.0
jere@JereMBP GitTest (feature-5) $ git tag
v1.0
v1.0.1

另外,关于tag的一些其它操作有:

# 查看所有标签
$ git tag
# 删除指定tag
$ git tag -d 标签名

修改最近提交的文本信息


很多时候,我们提交的时候,可能会输错提交的文本信息,然后想修改一下。

这时,你可以通过git commit --amend来修改最近的提交的文本消息

当然,你也可以通过刚刚介绍的撤销本地提交做到,这边就不再次展示了。

git config 一些配置

===============

通过git config --list来查看你的git配置信息

配置别名


每次输入我们都需要输入完整的checkoutcommit,很麻烦,我们可以通过设置别名来实现。

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

设置完成后,你在通过git config --list查看配置,就会发现:

alias.co=checkout
alias.br=branch
alias.ci=commit
alias.st=status

之后你就可以通过git co <branch>git st来切换分支、查看状态了..

配置代理


因为一些特殊网络原因,我们很多时候上github很不稳定,有时候我们推送一些代码会403失败。这时我们就可以通过设置代理来解决。

比如:我们设置一个本地代理。

git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

设置完成后,你再通过git config --list查看配置,就会发现:

http.proxy=http://127.0.0.1:1080
https.proxy=https://127.0.0.1:1080

设置代理成功后,某天,你想取消该代理,这时我们可以通过unset来取消代理设置。

git config --global --unset http.proxy
git config --global --unset https.proxy

结尾:

===

OK,文章到此也就结束啦。

建议对git命令还不太熟练的同学多上手试试,遇到问题不要慌,注意看它给的提示,相信很快就能掌握啦。

其实分享文章的最大目的正是等待着有人指出我的错误,如果你发现哪里有错误,请毫无保留的指出即可,虚心请教。

转自:Jere_Chen

原文地址:https://cloud.tencent.com/developer/article/1971578

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Git安装和使用 Git安装和使用 刚开始用git的小白适用,,转自http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。 目的:通过Git管理g
fatal: remote origin already exists.解决方法 第一个问题git remote add origin**************fatal: remote origin already exists.(报错远程起源已经存在。)上网查了下,有很多小白遇到过这个问题,以
git常用命令(二)查看历史记录 git log [--pretty=oneline] [ --oneline] / reflog Eniac-W 于 2020-10-18 18:12:38 发布 2368 收藏 3分类专栏: git 文章标签: git版权 git专栏收录该内容10 篇文章0 订阅
git之如何把本地文件上传到远程仓库的指定位置 git专栏收录该内容2 篇文章0 订阅订阅专栏2018.11.26添加内容: 对于自己的仓库,我们建议将远程仓库通过clone命令把整个仓库克隆到本地的某一路径下。这样的话我们从本地向远程仓库提交代码时,就可以直接把需要提交的文件拖到我们之前克隆下来的
代码规范之 lint-staged 在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的。但是整个项目上运行lint速度会很慢,lint-staged能够让lint只检测暂存区的文件,所以速度很快。 安装与配置 安装husky和lint-staged: yarn add hu
方法:1、文件没有git操作时用“git checkout--文件”命令还原;2、文件提交到暂存区时用“git reset HEAD”命令回退当前版本还原;3、文件提交到仓库区时用“git reset HEAD^”命令回退上一个版本还原。 本文操作环境:Windows10系统、Git2.30.0版、
使用Git将本地文件提交到远程仓库 一 操作准备条件: git远程仓库已经建好了,本地文件已经存在了,现在要将本地代码推到git远程仓库保存。 解决办法如下: 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使用命令
GitHub克隆代码到本地全教程 因为工作原因更换电脑,想要从GitHub上拉取代码的话需要重新配置ssh keys,时间过的久了怕忘记就把步骤给记录下来。 具体步骤: 1.安装git 这我就不说了 2.在TortoiseGit的安装文件中找到 puttygen.exe应用程序 ,默认应该都是 :C
github上传项目的时候报出git@github.com: Permission denied (publickey). fatal: Could not read from remote repo 前言 会不会有程序员小伙伴在刚开始使用github的时候上传项目的时候困难重重,但是又基于自己本身
查看历史 git log --pretty=onelinegit log (然后一直按enter键) 一个是切换根据历史里面的id切换git checkout ID git log 需要不断按enter键出来历史提交记录 git log --pretty=oneline 是直接出来历史记录
Git工作原理及常用命令 欧怼怼发布于&#160;2020-12-08 git介绍 git(读音/ɡɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 git
git git提交项目的具体流程 git项目流程:以下主要有3个角色:负责人、成员A、成员B(若负责人也要修改代码,则负责人同时兼任2个角色:负责人、成员) 主要负责人:搭建项目架构且提交到git上1.github官网登录后,新建仓库,生成地址url,复制线上仓库.git结尾的地址url2.在一个空
git上传项目全部流程 一、下载git 进入网址:https://git-scm.com/downloads; 点击中的Download 2.16.0 for Windows; 在中选择蓝色字段点击,根据电脑64或32位选择适合的下载,点击即可进行下载,下载完成后傻瓜式安装,一直点击下一步即可完成安
Your local changes to the following files would be overwritten by checkout问题的解决 于 2018-07-17 11:38:27 发布 Git 的本地版本管理有三个部分 名称&#x9;说明工作区(Working Directory)&#x9;
Git配置SSH Keys步骤使用教程 1.若是首次安装使用git,先配置用户名称和邮箱(如果有就不需要配置) 打开Git Bash,输入 git config --global user.name &quot;姓名&quot;git config --global user.email &quot
基本配置完成,接下来就是上传你要上传的项目了。 1、初始化git 进入你要上传的项目的文件夹,在文件夹内鼠标右击,选择“Git Bash Here”打开git命令行,输入: $ git init 目的是初始化git,并且会创建个“.git”文件夹,里面有个“config”就是用来保存远程厂库路径地址
本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“gitee如何上传代码”吧! ...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作中,相信很多人在gitee如何下载仓库里的项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Gitee上更新代...