[小白级]Git教程,拿来即用

314 阅读6分钟

Git是目前世界上最优秀最流行的分布式版本控制系统,也是程序员们日常使用最频繁的工具之一(几乎每天都需要使用它来对源代码进行版本管理)。对于每一位程序员,掌握Git已经是大势所趋。手握Git,代码我有,嘿嘿~

园丁将带你探索Git的基本使用,如果你还没有安装好Git,那么请戳 Git

Git初始化如此简单

我们可以在任何一个地方新建一个文件夹作为我们的本地仓库。可以通过右击当前文件夹,选择 Git Bash here打开我们的Git窗口 初始化 Git窗口按我的理解来说,就好比于一个小型的Linux操作界面。如果你熟悉Linux操作系统命令,那太好了,Git学习起来会相当轻松。
接下来,我们尝试初始化我们打开的文件夹

git init 

执行完这个初始化命令后,我们的文件夹下会多一个.git的隐藏文件夹(这个文件夹是关于当前本地仓库的一些配置信息) 初始化Git

Git添加远程仓库也不是很难的

现在我们有了本地仓库后,会出现两种情况

  • 1 如果我们是通过git clone [远程仓库地址]获取远程仓库的代码,此时我们的远程仓库地址会自动映射到我们本地
  • 2 如果我们通过前面的初始化命令创建了一个本地的仓库,需要我们手动去配置远程仓库地址
git remote add origin [远程仓库地址]
  • (1) git remote 是我们操作远程仓库的命令
  • (2) origin 是我们远程仓库在本地仓库的别名(别名可以自定义,一般来说,在项目中都会取origin作为别名)

添加远程仓库 咦,我们执行完上面的命令后,怎么没有反应呢? 这个时候,不是没有反应,是Git呀已经悄悄的执行完了

git remote 

我们可以通过上面这个命令来观察我们的所有的远程仓库的别名
哈哈哈,终于找到你啦
我们已经添加上我们的远程仓库啦,那么如何移除呢?可以执行以下命令进行移除操作

git remote remove [仓库的别名] 

Git 该上主菜了

Git如何拉取?

虽然我们已经添加好了远程仓库,但是我们本地仓库并没有远程仓库的地址,我们该如何去做呢?

git fetch 

执行 git fetch 后,本地仓库将可以获取到远程仓库的分支(如果本地没有对应的远程仓库分支,将会自动新建一个,如果已存在,则会执行更新操作)
我们已经有远程仓库的分支啦,接下来要做的事情,就是将远程仓库的代码合并到本地的分支上来

git merge master origin/master 

这个时候,我们终于获取到远程仓库上最新的代码啦
** 友情提示:**  git pull master origin/master 简化了拉取远程代码的操作,相当于上面两步奏的合体

git branch 

执行 git branch ,就可以查看到本地我们所有手动创建的分支

Git 添加自己的代码?

这部分,先不多说,直接上图(一图抵千言~) 阮一峰老师图

添加代码到暂存区

我们在本地仓库中添加一个新的文件1.txt

  • (1) touch 新建一个文件命令
  • (2) vim 编辑新建的1.txt
  • (3) git status 可以查看本地仓库所有文件的状态 从图中我们可以看到新建的1.txt文件处于未跟踪状态
git add -A 或者 git add .

将所有未跟踪的文件夹添加到暂存区域,如果我们只想添加某一个文件至我们的暂存区,可以用git add [文件名] 添加单个文件 完成暂存添加后,我们的代码处于暂存状态(生活带点光~0_0),此时反悔还来的及

git rm --cached [文件名]

执行git rm --cached 1.txt会将我们提交到暂存区的文件移除,并且还原到我们未跟踪的状态

提交代码至本地仓库

如果我们已经将我们的代码提交到了暂存区,我们现在终于可以提交代码到我们的本地仓库啦

git commit -m "feat: add 1.txt"

可以看见我们的代码已经成功的提交到了本地仓库,关于这里有个需要注意的点。提交代码也需要规范哦

1 build: 主要目的是修改项目构建系统(例如glup,webpack,rollup的配置等)的提交
2 ci:主要目的是修改项目继续完成集成流程(例如Travis,Jenkins,GitLab CI,Circle)的提交
3 doc:对应的文档更新
3 feat:项目中的新增功能(feature)
4 fix: bug修复
5 pref:性能优化
6 refactor:重构代码(既没有新功能,也没有修复bug)
7 style:不影响程序逻辑的代码修改(更加规范,加入空白符,补全分号)
8 test:新增测试用例或是更新现有测试
9 revert:回滚某个更早之前的提交
10 chore: 不属于以上类型的其他类型
推送本地仓库至远程仓库,实现版本管理

终于进行到最后一步啦,此时我们的代码已经在本地仓库,准备提交至远程仓库啦

git push origin master 
  • (1)git push Git推送代码至远程仓库命令
  • (2)origin 代表我们的远程仓库的别名
  • (3) master 代表我们的本地分支的名字 执行完这一步后,我们真的成功了吗? 很明显,我们失败了。这就涉及一个问题,我们的远程仓库已经有一个版本了,此时我们要做的是拉取合并版本
git pull origin master 

虽然我们成功从远程仓库拉取了分支到本地,但是我们还是没有合并成功。究其原因,还是版本号的问题(在前面的添加本地仓库中,我们采用的是自己初始化一个本地仓库,而不是git clone 远程仓库的代码),如何去解决?

git merge master origin/master --allow merge unrelated histories 

此时,我们已经成功解决了突出其来的问题
这时候,我们再一次提交我们的代码,是不是已经没有问题了

总结

1.这篇文章讲解了Git的基本操作,并解决了可能出现的问题 2.至于如何产生代码冲突以及如何解决代码冲突,园丁将在接下来的时间里带你继续探索 3.这篇文章,献给将要接触Git的小伙伴们。如果有经过的大佬,欢迎指定其中的不足,一定细心修改。
路过的小伙伴们,喜欢的顺手留个赞~~~