git本地修改代码还原_[Git]Git创建和修改代码库

7a72727e28caf694ca191d0a1df303f8.png

有了上一篇的简易Git使用指南,接下来我们就可以创建自己的代码库了

创建代码库

1.把文件夹变成git文件夹

git init 这样子就这里面的内容就可以git了

2.把要git的文件放入暂存区

git有三个空间: Working Directory工作区,Staging Area暂存区,Repository仓库

b4d0c861ed4c33f35ba7ca254d8e784b.png

工作区里面有三个txt文件,然后把cookie和bread放到暂存区,之后一次提交,就会一次性把staging area里面的所有东西(包括cookie和bread)提交到repository

git add cookie.txt #把cookie.txt放到暂存区

git add bread.txt #把bread.txt放到暂存区

如果某个文件被意外的放进了暂存区,可以使用 git reset cake.txt #从暂存区中删除cake.txt

查看文件的状态,可以使用 git status

64e0fa11125cfffb4c973b1b1ea08552.png

3.对文件进行编辑

4.提交本次的编辑

当我们已经完成了一个版本的编辑之后,就可以提交了,输入 git commit 就会弹出如下的一个编辑器,我的是Sublime,在最上面添加本次修改的主要修改内容。如果想要使用其他的编辑器,可以查看本文”其他问题“

f0181595cf84888039f98f1641bd936b.png

如果做了很多次修改以及上传,想要查找之前修改的不同版本,用 git log 即可,就会出现每次修改版本的快照

1ba22600501c4521e6da58d511c51f50.png

修改代码库

1.git diff

在简易Git使用指南这篇文章中我们已经学过了git diff这个命令,可以对比两个不同的commit的之间的差别,那么假如我们修改了代码,然后 出去喝了点水,和同事聊聊天,回来之后忘记自己修改了哪些代码,也没有提交commit怎么办呢? 换句话说,git diff除了对比 commit1和commit2,可以对比工作目录和暂存区吗?

b1ba441d36b3c43c47078b4e874e3770.png

当然可以!

git diff #对比working directory和staging area

git diff --staged #对比staging area和commit1

git diff commit1 commit2 #对比commit1和commit2

2.创建分支

0c84e274b1807b1fb871ca91d1a2fed9.png

有的时候,我们可能会想要对自己工作的项目进行一个分支,比方说,Asteroids小游戏,我们想要试验一个简易的版本,同时又不想破坏原来的想法,就可以创建一个分支

git branch #查看目前都有哪些分支

git branch [branch_name] #创建一个新的分支

git checkout [branch_name] #当前为此branch

0b1e07d304e127c275c9b75f33dffaca.png

如图,刚开始只有master主分支,然后我们创建了一个easy-mode的分支,然后当前分支设置为easy-mode,就可以看到小星星"* "移动到了easy-mode

如果想要看到某一分支什么时候产生的,可以输入以下代码来查看(这里的分支叫做coins) git log --graph --oneline master coins( 请注意,在可以使用 git log 查看 coins 分支之前,你需要使用命令 git checkout coins 检出 coins 分支 )

2d2c349d0b61171ca9721d8dc03d3e10.png

可以看到是在Revert controls之后产生了新的coins分支

3.合并分支

一个项目往往由不同的人同时开发,那么假如Jack创建了一个分支,对代码做了修改,Rachel也创建了一个分支,对代码做了修改,最终项目要合并。 首先我们先看一下项目合并的话,哪些代码会被保存下来,例子如下,初始的代码是ABD,然后Jack的代码是BDE,Rachel的代码是ABCD,那么最终合并的时候,由于A在初始的代码里面,但是被Jack删掉了,所以final不会有A,而BD存在于初始,Jack,Rachel的代码里面,保留,C和E分别都是初始没有的,但是后来添加上的,也保留

03b0af6b149510b36b84af9de0064d21.png

合并分支还会产生一个问题就是,你想要合并哪些分支?并且合并之后可能会删除其中一条分支的标签,怎么确定要保留哪个分支的标签,删除哪个分支的标签呢? 如果当前分支为branch1,并且运行git merge branch2 branch3,则合并的版本会将 branch1 以及 branch2 和 branch3 组合起来。 如果当前分支为branch2,运行git merge branch2 branch3,则将 branch2 和 branch3 组合起来,且branch2指向新的提交(即把branch3合并到了branch2上面,branch3的标签删掉

这部分详情请点击Udacity通过命令行合并

合并之后有的时候会报错,因为会有一些代码冲突,那么就需要人为的在代码上面进行修改了

至此,git的基本用法就学完了,接下来可以利用Github进行协作

其他问题

如何修改默认编辑器

只需输入下面的代码就可以了,此处我用的是Sublime,当然也可以使用Notepad++等的编辑器,地址为此编辑器的exe地址

git config --global core.editor "'C:Program FilesSublime Text 3/sublime_text.exe' -n -w"


任妍Carol:机器学习小白笔记目录​zhuanlan.zhihu.com
zhihu-card-default.svg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值