git add整个文件夹_【Mikeちゃん的闲扯杂谈】小白也能看懂的 git 命令教程

git 是一种开源的,用于软件开发和管理的工具,有了它,无论对于个人还是团队,都对项目开发都有着很大的便利。

https://en.wikipedia.org/wiki/Git​en.wikipedia.org

今天,我们来说说那些 git 的那些最基本的命令。

首先,在 git 上建立一个 test1 的文件夹,请注意,git 里面喜欢称呼文件夹为 repository, 就像这样。

310ded5cc434a4422208ab68812bd023.png

与之对应的,在本地也建立一个 test1 文件夹,你可以自己选取文件夹的位置。进入你本地的 test1 文件夹,启动 cmd 或者 git bash。

输入第一个命令:

 git init

好了,从现在开始,这个本地的 test1 文件夹已经是一个 git 文件夹了,你可以在接下来对其使用更多的 git 命令了。对于初学者而言,理解到这里就够了。这一步也会自动帮你建立一个 master 分支(如果你不明白什么是分支,没关系,你可以继续往下看)。

执行完这一步之后,你会发现本地的 test1 文件夹里面多了一个 .git 文件夹。

bc773bf1e5abc5eec5a467482c729025.png

接着,输入命令

git remote add origin https://github.com/your_account/test1.git

在完成了这一步时,git 就建立了你本地的 test1 和 git 上 test1 之间的映射关系,剩下来的一切命令就不需要你指定远程的文件夹是什么了。

在本地建立一个 a.txt 文件,在文件内部输入 aaa,保存退出。此时,这个 a.txt 文件还不属于 你本地的 test1 文件夹。

输入

git add .

此时,你新建立(相对于上次 commit 的)的所有文件,(在本例中仅仅为 a.txt)被添加到了一个临时空间里面,只有当你 commit 了以后,临时空间里的所有文件会被正式上传到当前的分支里。

输入

git commit -m "1"

至此为止,a.txt 已经正式属于本地 test1 下的 master 分支了。

c3862b9f4a4e78822358a4ee8125d008.png

其中 -m 后面的参数为对这一次 commit 的简单描述。请注意,在正式的工程项目中,这个参数不能随随便便的填写。

接着,我们输入

git push -u origin master

执行后 git 会让你输入你的 git 账号和密码,输入完后,本地的 test1 master branch 下的内容会正式地传入到远程 git 上。请注意,由于你之前建立了 origin 和 https://github.com/your_account/test1.git 之间的映射关系,所以 git 知道 origin 代表什么。

远程中 test1 下也有了 a.txt

00d2f749c5a768ef3030ee93e98c1e20.png

接下来在本地建立新的 branch branch1 并切换至 branch1,我们使用命令

git checkout -b branch1

打开本地的 test1 文件夹,我们发现,a.txt 文件依然存在,这是因为 branch1 是在你添加完 a.txt 的 master 分支后建立的,我们再添加一个 b.txt,写 bbb,保存退出。

请注意,此时此刻 b.txt 还不属于 git。

我们在切换回 master

git checkout master

观察本地 test1 文件夹,我们发现 b.txt 依然存在,这是因为 b.txt 还不属于 git。

37d5fe7439563e3c0e8e2a05b58f4685.png

再次切回 branch1,输入

git checkout branch1

再输入

git add .
git commit -m "2"

此时 b.txt 已经完全隶属于 branch1 分支了,因为你 commit 了。

切回 master

git checkout master

发现 b.txt 不存在。

9addac7546f510d4e67a7187bc5c8852.png

切回 branch1,把 a.txt 内容改为 aaaaa。

git checkout branch1

再输入

git add .
git commit -m "3"

接着切回 master

git checkout master

点开 master 下的 a.txt,发现其也被修改了。

在 master 下建立 b.txt,输入 bbbbb (5个),commit。

git add .
git commit -m "4"

切回 branch1,

点开 b.txt,发现 b.txt 中间只有 3 个b。

请问,为什么 a.txt 的修改可以在分支内部迁移,而 b.txt 不行?

输入

git merge master

此时报错:

CONFLICT (add/add): Merge conflict in b.txt
Auto-merging b.txt
Automatic merge failed; fix conflicts and then commit the result.

输入

git add .
git commit -m '5'

打开 b.txt 发现其变为:

<<<<<<< HEAD
bbb
=======
bbbbb
>>>>>>> master

切回 master,输入

git merge branch1

打开 b.txt

发现 b.txt 依然为

<<<<<<< HEAD
bbb
=======
bbbbb
>>>>>>> master

请问此时 b.txt 为什么不是

<<<<<<< HEAD 
<<<<<<< HEAD 
bbb
======= 
bbbbb 
>>>>>>> master
=======
bbbbb
>>>>>>> master

输入

在 master 添加 c.txt 并输入 ccc 保存。输入

git add .
git stash

发现 c.txt 消失了。这是因为 c.txt 被保存在了栈里面,输入

0695a65d2fc6f0d3f4a701a1a27a2247.png
git stash pop

之前的环境被弹出,c.txt 重新出现

a58dcabb4b07d0e57f65c483a1d9228b.png

再输入

git stash

然后输入

git stash apply

此时存在 c.txt 的环境会被回复,但是与使用 pop 不同的是,存在 c.txt 的环境依然存在栈里面。

我们再输入

git reset--hard origin/master
git checkout

发现本地又与远程 git 保持一致了。

9addac7546f510d4e67a7187bc5c8852.png

输入

git stash apply

发现只有 c.txt 被恢复。

6d6474fbb0285a8cf3b6e24c41d69256.png

当你搞懂了本文的所有细节,相信你就不仅仅是一个 git 的新手了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值