人有两个自己,一个病态的自我,一个健康的自我。前者懒惰逃避,后者积极向上。一个人心智越成熟,越能察觉到自己的懒惰,越是能自我反省,越是能找到懒惰的痕迹。有时一个人自认不完整,只是他还年轻!
总结:
- git提交commit的时候,要清楚的知道每一次,你都做了那些修改;
1. GIT
1.1 由来
Linux内核代码需要版本管理工具管理代码,2002年开始,使用的是BitMover公司的BitKeeper这个商用软件。但是Linux社区崇尚的是自由软件相悖。2005年,Andrew Tridgell对BitKeeper的协议进行逆向工程,BitKeeper作者决定收回无偿使用授权。磋商无果,Linus又找不到合适的版本管理工具,决定自行开发分布式版本管理工具,一个月后,Linux内核代码被Git接管。
2008年,基于WEB使用Git进行版本控制的软件托管服务的网站GitHub上线。
2016年5月9日,11年后,BitKeeper开源,发布在了GitHub上。
1.2 安装
https://git-scm.com/downloads
下载对应操作系统的Git客户端版本
Linux
从RHEL上安装非常简单
# yum install git
windows
下载对应的32位或者64
$ git --version 查看版本号
1.3 概念
主要涉及到四个关键点:
工作区:本地电脑存放项目文件的地方,比如learnGitProject文件夹;
暂存区(Index/Stage):在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
远程仓库:不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可;
1.4 使用
初始化一个版本库
git init
Initialized empty Git repository in /home/python/magedu/projects/cmdb/.git/
在当前目录中增加了一个.git目录,不要自行修改这个目录里面的文件。
当前目录一般是项目的跟目录;
添加文件
单个文件添加
git add index.htm
单个文件添加
这一步是把文件的当前变化增加到索引中,也就是以后这个文件需要版本来跟踪管理;注意这不是提交。此时,文件还可以继续修改,还可以添加新的被跟踪文件,一定要add才能把这些改变加入到索引中
批量文件添加
git add .
.点号,代表当前目录,这条命令将递归添加当前目录及其子目录所有文件
只要是目录,就会递归添加该目录下的文件和子目录。
查看状态
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: index.htm
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .ipynb_checkpoints/
# .python-version
# Untitled.ipynb
# __pycache__/
$ git status -s
-s, --short 短格式输出
Git的文件分类
追踪的Tracked,已经加入版本库的文件
未追踪的Untracked,未加入到版本库的未被管理的文件
忽略的Ignored,git不再关注的文件,例如一些临时文件
.gitignore文件中,目录以/结尾,行起始的!是取反
.gitignore内容如下:
提交代码
commit 提交更改到版本库
-m 填写本次日志消息,必须写。工作中,程序员应该对每一次提交写明做了什么改动
$ git commit --help
$ git commit -m "First Commit"
[master (root-commit) 8a73953] First Commit
Committer: python <python@nodex.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
If the identity used for this commit is wrong, you can fix it with:
git commit --amend --author='Your Name <you@example.com>'
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 index.htm
$ git status
# On branch master
nothing to commit (working directory clean)
网友评论