git学习笔记

做下git笔记@^@,after 看了《程序员修炼三部曲 第一步 使用git》
环境: window7 64位


1 git安装与设置

1.1 安装

下载github for windows 。安装完成会提供一个github客户端和一个git shell。
linux和mac该网址也有介绍。

1.2 设置

1
2
3
4
5
git config --global user.name “AAAAA” //账户名,github账户名
git config --global user.email “AAAAA@QQ.COM” //邮件地址,方便联系修改者
git config --global color.ui "auto" //不同颜色显示修改内容,也可设置为false(没有颜色显示)
git config --global --list //列出所有设置的全局变量
git help <command> //命令帮助

1.3 图形界面

1
2
3
//加&符号使图形窗口在新进程运行,不会让shell等待。
git gui& //git 图形界面
gitk& //显示当前分支的历史记录,--all显示所有分支

哈@-@,gitk用着还是特别不错的,如果黑框框看烦了的话。


2 常用操作

2.1 基本操作

1
2
3
4
5
6
7
8
9
10
11
cd <项目目录>
git init //初始化git,建立版本库
git status //查看状态,是否有文件改动
git add index.html //暂存 index.html
git commit -m "留言" //提交暂存
git add -i //交互模式暂存新文件
git commit -m “留言” -a //提交所有修改
git log -n //查看前n条的提交
git log --pretty=oneline //一行显示提交
git log -p //显示详细提交(包括修改)
git blame hello.html //跟踪hello.html文件

2.2 查看修改

1
2
3
4
git diff //比较目录与暂存的区别
git diff --cached //比较暂存区和版本库的区别
git diff HEAD //(暂存和未暂存)和版本库的区别
git diff --stat 1.0 HEAD // 很酷的参数--stat 统计1.0到HEAD的代码改动

2.3 分支

功能分支是分支的一种用法,可以在已有分支上创建新的分支,用于新功能开发或BUG修复,最后合并。

1
2
3
4
5
6
7
8
git branch RB_1.0 master //基于master分支创建RB_1.0分支
git checkout RB_1.0 //切换到分支RB_1.0
git tag 1.0 RB_1.0 //为RB_1.0分支末梢打上1.0标签
git checkout -b <新分支> <父分支> //创建并检出新分支
git branch <新分支> 1.0 //在1.0标签处创建新分支
git branch -m <新分支> <旧分支> //分支重命名
git branch -d/D //删除分支,大写D强制删除
git revert //创建一个反向的新提交

3 合并

3.1 自动合并

1
2
3
git merge <分支> //直接合并
git merge --squash <分支> //压合合并,分支所有提交压合成一个提交。
git merge cherry-pick 321d76f //挑选合并

3.2 冲突处理,图形化合并工具

git不能自动合并时,会产生冲突(conflict),需要手工编辑。windows下有kdiff3合并工具。windows用户下载安装kdiff3.

1
2
3
4
5
6
//配置
git config --global merge.tool kdiff3
//设置你的安装目录
git config --global mergetool.kdiff3.path "D:\Program Files\KDiff3\kdiff3.exe"
//git merge 产生冲突后,运行以下命令
git mergetool //发生冲突时,调用工具进行合并

4 远程操作

1
2
3
4
5
git clone https://github.com/smilesometimes/mysite_test.git //克隆到本地
git branch -r //列出远程分支 本地分支追随origin/master
git fetch //取来,用远程版本库更新origin
git pull //取来,并合并
git push //本地更改

4.1 github

github可以为每个项目添加合作者,感兴趣的项目可以fork下来,提交代码。github 还可以为每个项目创建一个静态网页介绍。在gh-pages分支里。

git