最近使用github把自己的一些配置文件托管了记录一下错做,一下是网上搜集的和自己的技巧
备忘一下git 的操作。
1. git 的用户信息注册:
git config –global user.name “abdo”
git config –global user.email “abdo@xxxx”
注意git 配置文件的解析顺序(优先级递减):
.git/config ~/.gitconfig /etc/gitconfig
# .git/config 最重要,最后解析
同时用户信息注销
git config –unset –global user.email “abdo”
2. git 仓库初始化
git init
git add . # 添加当前路径下的到仓库
git commit -a # 2个操作,包括add 和commit , 发布一个评论
3. git 的拷贝
git clone [ak@]sever:/git/source_code . # 克隆sever下的code到本地,支持ssh
4. git 的同步
A 拷贝最新到本地的master下,并新建一个beta分支
git fetch server:/git/source_code local_path master:beta
B 比较master 与beta 的区别
git whatchanged master newest
C 将本地的master code与beta融合
选择1
git merge beta # 把beta 放入master, 有点不建议这样,因为容易改动master
选择2
git checkout beta
git merge master # 把master放入beta
D 消除冲突 (如果有的话)
用文本编辑器(emacs, vi) 编译,消除冲突
5. git 更新远程server的code
git push server:/git/source_code # 注意,如果server只有一个master,默认是不允许修改的。 因为容易发生错误有风险。
建议是推送到server 的master下的一个分支,等管理员检查后在更新server 的master。
git push server:/git/source_code master:dev # 把最新上传的code 放在master下的dev分支。
6. git的邮件提醒(未检验)
由于git 允许分布管理,在同一时间内如果不同的人上传,容易把没有及时更新的code 覆盖,因此在git中,当有人上传最新code时候,进行邮件提醒。默认git 的邮件群发脚本在/usr/share/git-core/templates/hooks/post-receive-email
把这个文件拷贝到server的source code 下的.git/hooks/下,添加执行操作。
这个脚本是用sendmail发送邮件,因此server需开启sendmail服务,也有其他邮件系统的脚步,google立得!
7. git 小技巧
git diff -p hash1 hash2 #hash1 hash2 指哈希值1 和2. 可以不必全,头就行
git cat-files hash1
git ls-files hash1
git rev-parse hash1 # 这个只需要头,就会给出整个hash1, 避免敲错了