Git——本地使用详解

Git本地仓库的搭建与使用 本篇文章详细讲解了在没有github、gitee情况下,如何搭建自己的本地仓库进行代码托管,博主将从Linux系统、Windows系统下分别为大家整理。 阅读详情
AI摘要

本文详细介绍了Git的本地使用方法,包括开始版本控制、文件管控、工作区与暂存区操作、查看Commit记录、文件删除与改名、修改Commit记录等内容。还讲解了新增目录、忽略文件、恢复文件、git reset操作、HEAD概念以及只Commit文件部分内容等操作,帮助用户全面掌握Git本地使用技巧。

Git

1、开始版本控制

1.1、初始化Repository

新建一个目录,并使用git init命令初始化Repository:

mkdir mygit
git init

git init命令会在mygit目录中创建一个.git目录。

1.2、使目录脱离Git控制

Git的版控很单纯,全都是靠.git目录在做事。如果这个目录不想被版控,或者只想给客户不含版控记录的内容,只要把.git目录移除,Git就对这个目录失去控制权了。

2、把文件交给Git管控

2.1、创建文件后交给Git

创建一个内容为"hell, git"的文件,并命名为welcome.html:

echo "hello, git" > welcome.html

使用git status命令查看状态:
在这里插入图片描述

这个welcome.html文件当前的状态是Untracked files,即这个文件尚未被加到Git版控系统中,还未正式被Git“追踪”,只是刚刚加入这个目录而已。

使用git add命令,把welcome.html文件交给Git,让Git开始追踪它:

git add welcome.html

再次使用git status命令查看当前的状态:
在这里插入图片描述

从以上信息可以看出,文件状态已从Untracked变成new file。这表示该文件已经被安置到暂存区(Staging Area)。

2.2、git add之后再次修改文件

设想一下下面这样一种情境:

  1. 新增了一个文件abc.txt。
  2. 执行git add abc.txt命令,把文件加至暂存区。
  3. 编辑abc.txt文件。
echo "hello world" > abc.txt
git add abc.txt
echo "hw" > abc.txt

完成编辑后,可能想要进行Commit,把刚刚改动的内容保存下来。这是新手很容易犯的错误之一,以为执行Commit命令就能把所有的异动都保存下来,事实上这样的想法是不正确的。执行git status命令,看一下当前的状态:
在这里插入图片描述

可以发现,abc.txt文件变成了两个,步骤(2)的确把abc.txt文件加入暂存区了,但在步骤(3)中又编辑了该文件。对Git来说,编辑的内容并没有“再次被加入暂存区,所以此时暂存区中的数据还是步骤(2)中加进来的那个文件。

如果确定这个改动是你想要的,那就再次使用git add abc.txt命令,把abc.txt文件加入暂存区。

2.3、git add “–all"与”."参数区别

Git 1.x:

参数新增文件改动文件删除文件
--all是是是
.是是否

Git 2.x:

参数新增文件改动文件删除文件
--all是是是
.是是是

也就是说,在Git 2.x之后,这两个参数在功能上就没什么区别了。

2.4、把暂存区的内容提交到存储库里存档

如果仅是通过git add命令把异动加到暂存区,还不算是完成整个流程。如果想让暂存区的内容永久保存下来,就要使用git commit命令。

git commit -m "init commit"

在后面加上-m "init commit"是要说明“这次的Commit做了什么事”,只要使用简单、清楚的文本说明即可,中英文都可以,重点是要说清楚,能让自己和别人很快明白就行。

在这里插入图片描述

在执行git commit命令时,如果没有在后面加上信息参数,默认会弹出一个黑色的画面,也就是编辑器——Vim。让我们输入提交信息:

在这里插入图片描述

另外,如果没有内容,也可以Commit,只要加上--allow-empty参数。

git commit --allow-empty -m "empty commit"

3、工作区、暂存区与存储库

3.1、二段式提交

在Git中,针对工作目录、暂存区以及存储库3个主要区域,可以通过不同的Git命令,把文件移往不同的区域,如图所示:

在这里插入图片描述

3.2、跳过add直接commit

如果觉得先add再commit有点烦琐,可以在Commit时多加一个-a参数,缩短这个流程:

echo "ccc" > c.txt
git commit -a -m "quick commit test."

这样即使没有先add,也可以完成Commit。但要注意的是,这个-a参数只对已经存在于Repository区域的文件有效,对新加入(也就是Untracked files)的文件是无效的。

在这里插入图片描述

4、查看Commit记录

4.1、使用git log命令

git log

在这里插入图片描述

越新的信息会显示在越上面。从上面这段信息中大致可以看出以下内容:

  1. Commit的作者是谁
  2. 什么时候Commit的
  3. 每次的Commit大概做了些什么事

在使用git log命令时,如果加上额外参数,可以看到不一样的输出格式。例如,加上--oneline和–-graph参数:

git log --oneline --graph

在这里插入图片描述

输出的结果就会更为精简,可以一次性看到更多的Commit。

4.2、查询历史记录常用条件

想要找某个人或某些人的Commit:

# 使用 --author参数
git log --oneline --author="ActonZhang"

# 使用 | 表示或者,注意使用时需要加上\进行转义
git log --oneline --author="ActonZhang\|Tom"

想要找Commit信息中是否包含有某些关键字:

# 使用 --grep 参数
git log --oneline --grep="second"

想要找Commit文件中的内容:

# 使用 -S 参数
git log -S "hw"

想要找某一段时间内的Commit:

# 使用 --since --until --after 参数
# 查询今天上午9点到下午11点之间的Commit
git log --oneline --since="9am" --until="11pm"

# 查询2017年1月之后,每天上午9点到下午11点之间的Commit
git log --oneline --since="9am" --until="11pm" --after="2017-01"

5、删除或变更文件名

在Git中,无论是删除文件还是变更文件名,对Git来说都是一种“改动”。

5.1、删除文件

1、直接删除

可以使用系统命令rm或资源管理器之类的工具来删除文件。例如:

rm -rf welcome.html

删除后查看状态:
在这里插入图片描述

可以看到welcome.html文件当前的状态是deleted。如果确定这是你想做的,就可以把这次的“改动”加到暂存区,然后Commit即可:

git add welcome.html
git commit -m "delete welcome."

如果“把删除文件加到暂存区”让你觉得不好理解,就把“删除文件”也当作一种“改动”就行了。

2、使用Git命令删除

可以先执行rm命令删除,然后再执行git add命令加入暂存区的两段式动作,也可以直接使用git rm命令来完成:

git rm abc.txt 

这时候查看状态会发现,“它就直接在暂存区了,不需要再add一次,可以少做一个步骤:
在这里插入图片描述

随后直接Commit即可:

git commit -m "delete abc.txt"
3、使文件脱离Git控制

不论是执行rm命令,还是执行git rm命令,都会真的把这个文件从工作目录中删除。如果不是真的想把这个文件删除,只是不想让这个文件再被Git控制了,可以加上-- cached参数:

git rm b.txt --cached 

查看状态,b.txt的状态从原本已经在Git目录中的tracked变成Untracked了:

在这里插入图片描述

随后直接Commit即可:

git commit -m "untrack b.txt"

5.2、变更文件名

1、直接改名

与删除文件一样,变更文件名也是一种“改动”,所以在操作上也是差不多的:

mv a.txt aa.txt

查看状态,会看到两个状态的改变,虽然只是更改文件名,但对Git来说会被认为是两个动作,一个是删除a.txt文件,另一个是新增aa.txt文件(变成Untracked状态)。
在这里插入图片描述

git add aa.txt
git commit -m "rename a.txt to aa.txt"

在这里插入图片描述

git rm a.txt
git commit -m "delete a.txt"
2、使用Git命令改名
git mv aa.txt aaa.txt

在这里插入图片描述

git commit -m "rename aa.txt to aaa.txt"

5.3、文件的名称不重要

Git是根据文件的“内容”来计算SHA-1的值,所以文件的名称不重要,重要的是文件的内容。当更改文件名时,Git并不会为此做出一个新的Blob对象,而只是指向原来的那个Blob对象。但因为文件名变了,所以Git会为此做出一个新的Tree对象。

6、修改Commit记录

要改动Commit记录,有以下几种方式。

  1. 把.git目录整个删除(不建议)
  2. 使用git rebase命令来改动历史记录
  3. 先把Commit用git reset命令删除,整理后再重新Commit
  4. 使用--amend参数改动最后一次的Commit

这里采用第四种方式,先提交一个空Commit记录:

git commit --allow-empty -m "WTF"

在这里插入图片描述

要改动最后一次的Commit信息,只需直接在Commit命令后面加上--amend参数即可:

git commit --amend --allow-empty -m "heiheihei..."

在这里插入图片描述

虽然只是修改记录的信息,其他什么都没有改,但对Git来说,因为Commit的内容改变了,所以Git会重新计算并产生一个新的Commit对象,这其实是一次全新的Commit(只是看起来不像新的)。例如,上面这个例子中,改动前的Commit对象的SHA-1值在改完信息之后变了。虽然Commit的时间与文件的内容看起来并没有被改动,但它仍是一次全新的Commit。

7、追加文件到最近一次的Commit

可以采用下面这两种方式来完成:

  1. 使用git reset命令把最后一次的Commit删除,加入新文件后再重新Commit
  2. 使用--amend参数进行Commit

此处采用第二种方式,假设有一个Untracked的b.txt文件,想把它加入到最近一次的Commit中:
在这里插入图片描述

# 先加入暂存区
git add b.txt

# 加入到最近一次Commit,--no-edit参数表示不需要编辑Commit信息
git commit --amend --no-edit

像这样改动历史记录的操作,尽量不要应用在已经Push出去的Commit上。

8、新增目录

# 新建目录
mkdir images

# 查看状态
git status

在这里插入图片描述

发现Git的状态依旧没有变化,因为Git在计算、产生对象时,是根据“文件的内容”进行计算的,所以只是新增一个目录的话,Git是无法处理它的。

如果想要新增目录,只要在空目录中随便放一个文件就行了。如果当前还没有文件可以放,或者不知道该放什么文件,通常可以放一个名为“.keep”或“.gitkeep”的空文件,让Git能“感应”到这个目录的存在:

touch images/.keep
git status

在这里插入图片描述

可以发现,Git已经感知到这个目录的存在了(其实是感应到里面那个.keep文件的存在),接下来按照一般的流程进行add和commit即可。

git add .
git commit -m "add dir"

9、有些文件不想放在Git中

如果不想把文件放在Git中,只需在项目目录中放一个.gitignore文件,并且设置想要忽略的规则即可。如果这个文件不存在,就手动新增它:

touch .gitignore

然后编辑这个文件的内容:

# 忽略所有后缀是.yml的文件
*.yml

只要.gitignore文件存在,即使这个文件没有被Commit或Push上Git服务器,也会有效果。但通常建议将这个文件Commit进项目并且push上Git服务器,以便让一起开发项目的所有人可以共享相同的文件。

在新增文件时,只要符合.gitignore文件中的规定,这个文件就会被忽视。

touch secret.yml
git status

在这里插入图片描述

secret.yml这个文件虽然确实存在这个目录中,但Git已经“感应”不到它了,即它被Git无视了。

虽然.gitignore文件列出了一些忽略的规则,但其实这些忽略的规则也是可以被忽略的。只需在执行git add命令时加上-f参数:

git add -f 文件名称

如果想清除那些已经被忽略的文件,可以使用git clean命令并配合-X参数:

git clean -fX

10、查看特定文件的Commit记录

git log可以查看整个项目的Commit记录,但如果只想查看单一文件的记录,可在git log后面接上那个文件名:

git log b.txt

在这里插入图片描述

这样就能看到这个文件Commit的历史记录。如果想查看这个文件每次的Commit做了什么改动,可以再给它加上一个-p参数:

git log -p b.txt

在这里插入图片描述

11、查看某行代码是谁写的

可使用git blame命令找出来:

git blame user.sql

在这里插入图片描述

这样就可以很清楚地看出来哪一行代码是谁在什么时候写的,而最前面看起来像乱码的文本,正是每次Commit的识别代码,表示这一行代码是在哪一次的Commit中加进来的。

如果文件太大,也可以加上-L参数,只显示指定行数的内容:

git blame -L 10,15 user.sql

在这里插入图片描述

12、意外删除文件或目录

12.1、恢复被删除的文件或目录

先删除user.sql文件:

rm -rf user.sql

查看状态:

git status

在这里插入图片描述

查看文件列表:

ls -al

在这里插入图片描述

如果要把user.sql挽救回来,可以使用git checkout命令:

git checkout user.sql

# 如果要恢复多个文件,可以使用.
git checkout .

查看状态:
在这里插入图片描述
查看文件列表:
在这里插入图片描述

这个技巧不仅可以将删除的文件挽救回来,当改动某个文件后反悔了,也可以用它把文件恢复到上一次Commit的状态。

不是所有情况下都能恢复被删除的文件的。因为整个Git的记录都是放在根目录下的.git目录中,如果这个目录被删除了,也就意味着历史记录也被删除了,那么删除的文件也就不能恢复了。

12.2、Git恢复文件的原理

当使用git checkout命令时,Git会切换到指定的分支,但如果后面接的是文件名或路径,Git则不会切换分支,而是把文件从.git目录中复制一份到当前的工作目录。

更精准地说,这个命令会把暂存区(Staging Area)中的内容或文件拿来覆盖工作目录中(Working Directory)的内容或文件。因此,在上面执行git checkout user.sql或git checkout .命令时,会把user.sql文件或者当前目录下的所有文件恢复到上一次Commit的状态。

如果在执行这个命令时多加了一个参数:

git checkout HEAD~2 user.sql

那么距离现在两个版本以上的那个user.sql文件就会被用来覆盖当前工作目录中的user.sql文件,但要注意,这同时也会更新暂存区的状态。

git checkout HEAD~2 .

这个命令的意思就是“用距离现在两个版本以上的文件来覆盖当前工作目录中的文件,同时更新暂存区中的状态”。

13、拆掉Commit重做(git reset)

13.1、拆掉重做

先查看当前的Git记录:

git log --oneline

在这里插入图片描述

如果想拆掉最后一次的Commit,可以采用“相对”或“绝对”的做法。

“相对”的做法是这样的:

git reset 7d66c8c^
# 最后的那个“^”符号代表的是“前一次”,所以7d66c8c^是指7d66c8c这个Commit的前一次;
# 如果是7d66c8c^^,则是往前两次……以此类推。
# 不过如果要倒退5次,通常不会写作7d66c8c^^^^^,而是写成7d66c8c~5”

因为刚好HEAD与master当前都是指向7d66c8c这个Commit,而且7d66c8c不太好记,所以上面这行通常会改写成:

git reset master^
# 或
git reset HEAD^

以这个例子来说,这两个命令会得到一样的结果。

"绝对"的方式如下:

如果很清楚要把当前的状态退回到哪个Commit,可以直接指明:

git reset dbca90c

它就会切换到dbca90c这个Commit的状态,因为dbca90c刚好就是7d66c8c的前一次Commit。以这个例子来说,也会达到与“拆掉最后一次的Commit”一样的效果。

13.2、Reset模式

git reset命令可以搭配参数使用。常用参数有3个,分别是--mixed、--soft以及--hard。搭配不同的参数,执行结果会有些微差别:

  • mixed模式:--mixed是默认的参数,如果没有另外加参数,git reset命令将使用--mixed模式。该模式会把暂存区的文件删除,但不会影响工作目录的文件。也就是说,Commit拆出来的文件会留在工作目录,但不会留在暂存区。
  • soft模式:这种模式下的Reset,其工作目录与暂存区的文件都不会被删除,所以看起来就只有HEAD的移动而已。因此,Commit拆出来的文件会直接放在暂存区。
  • hard模式:在这种模式下,无论是工作目录还是暂存区的文件,都会被删除。
模式工作目录暂存区
mixed不变被删除
soft不变不变
hard被删除被删除

如果上面的说明让你不容易想象到底发生了什么事,那么只要记住这些不同的模式,就能决定“Commit拆出来的那些文件何去何从:

模式Commit拆出来的文件
mixed放回工作目录
soft放回暂存区
hard直接删除

13.3、Reset实际意义

Reset通常翻译为“重新设置”,但在Git中,将Reset解释为“前往”或“变成”更为贴切,即go to或become的意思。当执行以下命令时:

git reset HEAD~2

该命令可能会被解读成“请帮我拆掉最后两次的Commit”,但其实用“拆”这个动词只是为了便于理解而已,事实上并没有真的把Commit“拆掉”(放心,所有的Commit都还在)。

准确地说,上面这个命令应该解读成“我要前往两个Commit之前的状态”或“我要变成两个Commit之前的状态”,而随着使用不同的参数模式,原本的这些文件就会移去不同的区域。

因为实际上git reset命令也并不是真的删除或重新设置Commit,只是“前往”到指定的Commit。那些看起来好像不见的东西只是暂时看不到了,但随时都可以再救回来。

14、恢复使用hard模式Reset的Commit

14.1、退回Reset前

查看Commit记录:

git log --oneline

在这里插入图片描述

首先要树立一个观念,不管用什么模式进行Reset,Commit就是Commit,并不会因为Reset就马上消失。假设先用默认模式的git reset命令倒退一步:

git reset HEAD~1

这时Commit看起来就会少一个,同时拆出来的文件会被放置在工作目录中:

在这里插入图片描述
在这里插入图片描述

如果想要退回刚刚Reset的这个步骤,只要Reset回一开始那个Commit的SHA-1 7d66c8c即可:

git reset 7d66c8c --hard

刚刚看起来拆掉的Commit就又回来了。这里使用了--hard参数,可以强迫放弃Reset之后改动的文件。

14.2、使用Reflog

如果一开始没有记录Commit的SHA-1值也没关系,可以利用Git中的Reflog命令保留一些记录。再次借用上一个例子,但这次改用--hard模式进行Reset:

git reset HEAD~1 --hard 

查看状态:
在这里插入图片描述
查看文件列表:
在这里插入图片描述

查看Commit记录:
在这里插入图片描述

可以发现,不仅Commit不见了,文件也消失了。

接着可以使用Reflog命令来看一下记录:

git reflog 

在这里插入图片描述

当HEAD移动时(如切换分支或者Reset都会造成HEAD移动),Git就会在Reflog中留下一条记录。

所以如果想要取消这次的Reset,就可以“Reset到它Reset前的那个Commit”(很像绕口令)。在这个例子中就是7d66c8c,所以只要这样:

git reset 7d66c8c --hard

就可以把刚刚hard reset的东西再次救回来了。

git log命令如果加上-g参数,也可以进行Reflog。

15、HEAD

15.1、HEAD简介

HEAD是一个指标,指向某一个分支,通常可以把它当作“当前所在分支”来看待。在.git目录中有一个名为HEAD的文件,其中记录的就是HEAD的内容。来看一下它到底长什么样:

cat .git/HEAD

在这里插入图片描述

从这个文件可以看出,HEAD当前正指向master分支。如果有兴趣再深入看一下refs/heads/master的内容就会发现,其实所谓的master分支也不过就是一个40个字节的文件罢了:

cat .git/refs/heads/master

在这里插入图片描述

15.2、切换分支的时候

假设当前项目包括3个分支,而当前正在master分支上:

$ git branch 
cat 
dog 
* master

接下来试着切换到cat分支:

$ git checkout cat 
Switched to branch 'cat'

这时看一下刚刚那个HEAD文件的内容:

$ cat .git/HEAD 
ref: refs/heads/cat

HEAD的内容变成refs/heads/cat了。再试着切换到dog分支:

$ git checkout dog 
Switched to branch 'cat'

再确认一下HEAD的内容:

$ cat .git/HEAD 
ref: refs/heads/dog

它又改成指向dog分支了。也就是说,HEAD通常会指向当前所在的分支。不过HEAD也不一定总是指向某个分支,当HEAD没有指向某个分支时便会造成detached HEAD的状态。

在切换分支的同时,HEAD的内容会改变,当HEAD的内容改变的时候,Reflog也会留下记录。

16、只Commit一个文件的部分内容

假设index.html文件如下:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>首页</title>
</head>
<body>
	<div class="container">
		<h1 id="heading">头版消息</h1>
		<div>内文   内文    内文    内文</div>
		<div id="footer">没有版权,随意使用</div>
	</div>
</body>
</html>

我们修改一下:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>首页1</title>
</head>
<body>
	<div class="container">
		<h1 id="heading">头版消息1</h1>
		<div>内文   内文    内文    内文1</div>
		<div id="footer">没有版权,随意使用1</div>
	</div>
</body>
</html>

如果因为某些原因不想Commit footer区域,在Git中也可以先Commit其他的部分:

git add -p index.html

在这里插入图片描述

当使用git add命令时,如果加上-p参数,Git就会询问是否要把这个区域(hunk)加到暂存区:

y - 暂存此区块
n - 不暂存此区块
q - 退出;不暂存包括此块在内的剩余的区块
a - 暂存此块与此文件后面所有的区块
d - 不暂存此块与此文件后面所有的区块
g - 选择并跳转至一个区块
/ - 搜索与给定正则表达示匹配的区块
j - 暂不决定,转至下一个未决定的区块
J - 暂不决定,转至一个区块
k - 暂不决定,转至上一个未决定的区块
K - 暂不决定,转至上一个区块
s - 将当前的区块分割成多个较小的区块
e - 手动编辑当前的区块
? - 输出帮助

选择e,就会出现编辑器,显示以下内容:
在这里插入图片描述

在这里就可以编辑想要加到暂存区的区域。因为不想把footer区域加进去,所以就把那1行删掉,存档并离开即可“把部分内容加到暂存区”。看一下当前的状态:
在这里插入图片描述

在这里插入图片描述

可以看出,index.html文件有部分在暂存区,同时也有一份包括那1行的版本在工作目录。这样就可以先Commit部分内容了。

Git管控本地项目及远程仓库代码(最详细基础篇) 最详细成功使用git托管本地项目到仓库 阅读详情

相关推荐

GIT版本管理工具教程

1 进入要管理的目录2 git init初始化 即:让git管理我们当前的文件夹3 git status 检测当前文件夹中的文件状态4 三种颜色的变化a 红色:新增文件或者修改的老文件 --> 执行git add .(或者单个文件或文件夹的名称)b 绿色:git已经管理起来了 --> 执行git commit -m '描述信息'c 白色:生成版本了好,之后我们会细说这几个颜色到底还有什么意义5 git log 查看版本记录git initgit addgit commit。

weixin_55136170的博客 2416

Git的基本使用(本地仓库)

安装并使用GIt 在本地仓库进行操作

m0_56297301的博客 4391

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

Git:在本地电脑上如何使用git?

git 版本: 2.40.1.windows.1。

siaok的博客 2978

ROS2通过ros2_socketcan实现CAN总线高效数据过滤与多节点通信

本文详细解析了ROS2通过ros2_socketcan实现CAN总线高效数据过滤与多节点通信的技术方案。文章重点探讨了CanFilterList的工作原理、多过滤器组合使用及动态配置策略,有效解决了工业应用中CAN总线数据过载问题,显著降低了CPU负载并提升了系统实时性。

n4o5p6q7r的博客 215

ZYNQ RFSoC 的DAC如何做到从 0到Fs频段 信号输出

之前一直没太了解 RFSoC 的DAC如何输出在 Fs/2 到 Fs 频率范围内的信号,例如 ZCU216中的 ZU49DR,其RF-DAC最大采样率是 9.85GSPS,如果想输出的信号中心频率在5.8G,它是如何有效输出在第二奈奎斯特区域范围的信号的。

weixin_44630490的博客 1552

git 切换本地分支_Git操作详解以及在VScode中的使用

我们先理清Git和Github的区别,Git是个版本控制的工具,用来管理本地的代码工程,它可以记录代码内容的变更;而Github是一个代码托管平台,我们可以使用Git将本地代码上传到Github。为什么要学Git,上面说到Git是一个版本控制工具,它可以记录代码内容的变更,方便我们对项目的管理,它主要有以下的用途:代码备份举一个简单的例子,写好一个程序后,想要再加一个新功能,添加这个新功能需要对很...

weixin_39843338的博客 2257

遥感图像融合实战:5分钟搞懂全色与多光谱图像如何提升分辨率(附Python代码)

本文通过实战案例,详细解析了如何利用全色锐化技术融合全色与多光谱遥感图像,以提升图像分辨率。文章深入浅出地介绍了核心概念、环境配置、经典GS融合算法的Python代码实现,并对比了不同算法的优劣,最后提供了效果评估方法与实战陷阱分析,帮助读者快速掌握遥感图像融合的关键技术。

weixin_29041195的博客 394

使用git如何下载github上的代码到本地详解

从github下载代码到本地(首先要在本地安装好git) git官网:https://git-scm.com/ 这个就比较简单了,总共三步: 新建本地仓库 新建一个文件夹,初始化git git init 2. 添加github远程代码仓库 git remote add origin + 远程代码仓库地址 远程代码仓库地址如下所示: 下载远程仓库代码 git clone + 远程代码仓...

terry 9621

逆向分析-SeparationPreview.aip-分色预览-结构分析(一)-x64dbg条件日志打印-命令表达式-PS脚本

从功能上分析,仅显示使用的专色这个功能,并没有触发插件接口。使用X64dbg加载illustrator进程,切换到句柄窗口,在窗口过程中,右键刷新获取界面。在x64dbg中,在UI中可以输入一些条件表达式,能够计算出对应的值,并打印在日志中。常用的,如果非暂停,输出第一个参数。参数二是utf16的指针,utf16@字符串地址,这里的字符串地址为[[ebp-108]]参数一是utf8的,utf8@字符串地址,这里的字符串地址为[ebp-28]从界面上分析,一个颜色列表,及仅显示专色的多选框组成。

插件开发 645

手把手教你学Simulink——基于Simulink的固态变压器(SST)多级协同控制

摘要:本文详细介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为新一代智能电网核心设备,通过AC-DC整流、DC-DC隔离和DC-AC逆变三级架构实现电能高效转换。针对多级耦合难题,提出能量-功率协同控制策略:纵向解耦电压环与功率前馈,横向联动级间功率指令。在Simulink中搭建10kV/400V系统模型,实现直流母线电压波动<2%的动态性能。特别设计了负载突变时的三级协同机制,通过虚拟惯性算法和前馈控制实现快速响应。文章包含完整的建模步骤、控制推导和参数设置,为电力电子工

MHD0815的博客 195

git详解<本地和远端同步>及.gitignore如何使用

本文看完可以直接使用git来实现版本控制,(1)(2)还没有更新完,会快快更新,希望能帮助到大家

qq_75270497的博客 1373

【Docker】一招解决超时镜像超时报错:`ERROR: Get https://registry-1.docker.io/v2/`

Docker 镜像拉取超时或失败并不是 Docker 本身的缺陷,而是网络环境和默认配置在特定场景下的限制所导致的结果。通过本文的分析可以看到,问题的核心往往集中在三个方面:网络访问延迟、DNS 解析速度以及客户端默认超时时间。针对这些问题,最直接、有效的做法是使用国内镜像加速器,这不仅能够显著提升拉取速度,还能保证在企业内网或家庭网络中更加稳定

博客 1027

使用Git将本地代码上传GitHub图文详解

作为SVN使用的忠实用户,对于如何使用Git却是陌生的很,这不今天学习之余想将自己搞的一套微信小程序代码(关于报名活动的微信小程序)上传上去的时候才发现自己不会用Git,大写的尴尬。经过一番上网查找资料,总算是知道了一些皮毛用法,下面将以图文的方式讲述如何将本地代码上传到Github上。好了,废话不多说,直接开干。 1.本地安装Git,官网下载地址: https://git-sc...

weixin_36898373的博客 672

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【转发】Git本地服务器搭建及使用详解

来源:https://www.cnblogs.com/linsanshu/p/5512038.html Git本地服务器搭建及使用 Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个较好的选择,本文将对此进行详细讲解。(推荐一家提供私有源代码免费托管的网站:Bitbucke...

kongjunlongaa的博客 1187

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用Git将本地项目上传到Github操作详解

  Git的安装就不说了。 一、建本地仓库 1、第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。        你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。   反正就是创建一个文件夹,然后进入该文件夹 2、第二步:通过命令git init把这个文件夹变成Git可管理的仓库   这时你会发现文件夹里面多了个.git文件夹,它是Git用来跟踪和...

weixin_33915554的博客 232

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Git 基础教程 - 本地使用详解

HEAD是一个指标,指向某一个分支,通常可以把它当作“当前所在分支”来看待。在.git目录中有一个名为HEAD的文件,其中记录的就是HEAD的内容。从这个文件可以看出,HEAD当前正指向master分支。

smart_an的专栏 1205

Git本地服务器搭建及使用详解

Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个较好的选择,本文将对此进行详细讲解。(推荐一家提供私有源代码免费托管的网站:Bitbucket,目前支持一个项目5个成员) 搭建环境: 服务器:intel i5 / 8g内存 / 64位操作系统  Ubuntu 15.04 ...

lzf200906306的博客 731

如何使用Git?(关于本地、远程仓库、分支详解)

Git是分布式版本控制系统,客户端是把代码仓库完整地镜像下来。 Git中的文件的三种状态:已修改、已暂存(对一个已修改文件的当前版本做标记,让它包含在下次快照中)、已提交(完成了一次快照)。这也对应了三个阶段:工作目录、暂存区域、Git仓库。 本地Git仓库 两种获取Git仓库的方式: 1、将尚未进行版本控制的本地目录转化为Git仓库;首先cd进项目目录,然后git init初始化一个仓库,该命令创建了一个名为.git的子目录,这个子目录含有初始化的Git仓库中所有的必须文件。但是,此时项目里的文件.

weixin_43510267的博客 472

【Git使用详解】使用Egit克隆项目到本地图解

此系列文章写给那些打算使用Git或正在使用Git,但对Git还不是很理解的程序猿们,希望能帮助大家在学习和使用Git的过程中少走弯路,并以最少的时间和代价来熟悉Git,让Git能够辅助更多的开发者提高开发效率。

fengyuzhengfan的专栏 5259

Git基本使用--本地远程仓库分支使用详解

一:前言 本文使用的git远程仓库为gitee远程仓库 二:本地用户基本使用 1.关联远程库 (1)添加关联 git remote add origin git@github.com:yelccccc/note.git 或 git remote add origin git@gitee.com:lingcb/workplace.git (2)将远程仓库下载到本地 (3)把当前分支master推送到远程 git push -u origin master (4)从现在起,只要本地作了提交,就可以通过命令: g

weixin_45259896的博客 380

Android进阶中级教程——1.1 Git的本地使用详解

1.引言 在之前的Android基础入门系列我们就讲解过Git的简单使用了,进阶系列我们 系统地对Git进行讲解,基本命令的使用;工作区,暂存区,历史仓库,远程仓库的概念, 团队协作中的分支管理,Android Studio中使用Git等;Git是一个快速的分布式的版本 控制系统,和其他的版本控制系统的差别在于Git直接记录快照,而不是差异比较! 差异比较的版本控制系统只关心文件内容的具

perfect880720的博客 449
上一篇: Java——正则表达式详解
下一篇: Git——分支详解
吴声子夜歌
博客等级 码龄9年 2688粉丝 2270原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值