大四开始使用git协同开发,到现在工作一年,从一开始使用模模糊糊,每次遇到冲突都胆战心惊,到如今慢慢感受到这个分布式控制工具给开发带来的便利。越发觉得,掌握工具、使用工具提高效率的重要性!
个人开发环境 ubuntu 14.04
说明:
- $ 表示终端执行命令
- # 命令注释
- [] 表示可选
Git 是一个分布式版本控制工具
基本上,使用git工作的流程如下:
- 修改文件,在
工作目录
中修改文件。 - 暂存文件,将文件的快照放入
暂存区域
。 - 提交更新,找到暂存区域的文件,将快照永久性存储到
Git 仓库目录
。 - 推送到远程服务器
对应以上流程,git 的三个状态关系如下
安装配置 Git
安装 git
命令行直接输入git提示应用没有安装的情况下
安装git,[图形化 gitk, 差异比较工具 meld]
$ sudo apt-get install git gitk meld
配置 git
- 在~目录下添加一个.gitignore,将需要忽略的对象添加进来,对当前用户所有仓库生效。
- 配置config,使用 –global 说明对当前用户所有仓库生效(对特定仓库或者文件的配置,可以使用
--local/ --file
)。
$ touch ~/.gitignore
$ echo "cscope*" > ~/.gitignore
$ echo "tag*" >> ~/.gitignore
$ echo "*.swp" >> ~/.gitignore
$ git config --global core.excludesfile ~/.gitignore
# 自报家门,记得替换自己的名称和邮箱...
$ git config --global user.name luchaodong
$ git config --global user.email lcdsdream@126.com
# 显示配置
$ git config --list
说明:
- /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用
--system
选项,读写的就是这个文件。 - ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用
--global
选项,读写的就是这个文件。 - 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。若使用 git config 时用
--local
选项,读写的就是这个文件。
每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。
开始使用 Git
版本库创建
现有目录使用git开始版本管理
创建 .git 后将需要跟踪的文件添加并提交。
通过.gitignore设定不想跟踪的文件,再执行 git add –all, 把其他所有文件加入追踪目录。
$ git init
$ git add --all
$ git commit -m "initial project version"
# 取消追踪某个文件
$ git rm --cached <file>
克隆现有仓库
获取仓库链接,保存在本地 local_pySerial 目录下
git clone git@github.com:lcdsdream/pySerial.git [local_pySerial]
.gitignore 例子
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.