最近使用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, 避免敲错了