Git简介:
先亮出简单粗暴的结论: Git 是一个让你再也不用保存N个文件版本,关键时刻找不到哪个是哪个的神级软件。
接下来是引用(from GitBook):
Git是一个分布式版本控制系统(这类系统还包括 Mercurial,Bazaar 以及 Darcs 等),原是Linux内核開發者林纳斯·托瓦兹(Linus Torvalds)为更好地管理Linux内核开发而设计。
同传统的集中式版本控制系统(CVCS)不同,开发者之间的协作方式因着 Git 的分布式特性而变得更为灵活多样。在集中式系统上,每个开发者就像是连接在集线器上的节点,彼此的工作方式大体相像。而在 Git 网络中,每个开发者同时扮演着节点和集线器的角色,这就是说,每一个开发者都可以将自己的代码贡献到另外一个开发者的仓库中,或者建立自己的公共仓库,让其他开发者基于自己的工作开始,为自己的仓库贡献代码。
特点:
- 对非线性开发模式的强力支持(允许上千个并行开发的分支),可以应付各种复杂的项目开发需求(Docker内部集成了Git);
- 类似 GitHub 的 GitLab 免费管理工具。将代码托管在自己内部服务器上的同时,提供了优美的 web 界面,图形化分支结构,更直观的代码审查,统计、issue 系统、wiki 等功能全面集成;
它的速度飞快,极其适合管理大项目;
……
还有很多但是差不多可以了,接下来进入博客主题。
这些入门知识大多学习于廖雪峰老师制作的入门教程,点击这里能飞过去.
Git for windows的下载链接:https://git-for-windows.github.io/
安装完毕后,在空白处右键出现如下图效果:
选择Git Bash Here,跳出类似dos窗口的黑色框说明就安装好了.
1、 创建仓库
选择一个合适的目录,新建一个文件夹,这个文件夹用来存放以后所有需要用git进行版本控制的项目,然后右键Git Bash Here,
敲入命令 :$ mkdir myrepo
创建名为’myrepo‘的仓库,
敲入命令:$ cd myrepo
进入这个仓库文件夹,
命令$ pwd
可以显示当前的目录
2、 提交和查看
敲入$ git init
后这个目录就能被git管理了。
接下来我们得配置用户名和邮箱:
$git config --global user.name yourname
$git config --global user.email example@126.com
yourname这里写上自己的用户名,example@126.com写自己的邮箱.完成后现在可以用:$ git user.name和$ git user.email
命令查看了.
–global表示在这台机器上的每个项目都会使用这样的用户名和邮箱,如果想要为单个项目配置不同的,直接用$git config user.name yourname
这个命令.
不想用全局配置文件用户名和邮箱可以通过这样删除:
$git config --unset --global user.name yourname
$git config --unset --global user.email example@126.com
在myrepo仓库里面空无一物,既然是练习,那么没有现成代码也无所谓。手动创建一个文本文档(使用Notepad++也是极好的),文件名随意取,这里命名为test.txt。内容写个’HelloWorld’就好。使用$ git add test.txt
将文件添加到版本库的暂存区,使用$ git status
查看库当前的状态
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: test.txt
git说在master分支上(主分支)有改动还未被提交,是一个叫test.txt的新文件,这表明添加成功了.当确认添加无误后下一步就是提交(commit)了.使用$ git commit -m "add test.txt"
提交.引号中的内容是对这次提交的说明,下次一看到说明内容就知道这次提交了什么.
或许过了一个周末,你忘记了上周五对文件做了什么修改,这个时候j进入这个文件目录,使用$git diff
查看之前修改了什么,方便马上能接着工作.
3、版本回退
没过多久,版本更新迭代许多次了,但是突然发现某次修改改出问题了,想要退回到修改之前的版本要怎么办?
不要慌!版本的修改记录能在$ git log --pretty=oneline
这里看到,如果要回退到上个版本,那么就这样:$ git reset --hard HEAD^
一个^表示回退一次,回退多次可以HEAD~n这样表示,n是次数。回退好了,用$ cat test.txt(文件名)
查看。
可是回退后又想回到新版本了怎么办?使用$ git reflog
显示每次修改的信息以及对应的id,这时候‘-m’后面的说明信息就很关键了。找到了版本号,用$ git reset --hard id_num(id值)
就能飞回来了。
如果把文件添加进暂存区后,又对文件做了修改,想要改回到文件刚被添加时的版本,那么可以使用$ git checkout -- test.txt(文件名)
命令,撤销对本地文件的修改(工作区)。
如果做了错误的修改,又把它添加进暂存区了,可以用$ git reset HEAD test.txt(文件名)
将其撤回到工作区。
如果错误的修改已经被提交了,那么只要文件还没推送给远程,就可以通过回退版本解决。
4、远程仓库(如GitHub)
当进行合作开发时,远程仓库就必不可少了。它既可以接收我们的推送,也可以将别人的推送抓取(pull)到本地修改。
…待续