Git教程

 

推荐一个特别好用的在线训练软件

http://pcottle.github.io/learnGitBranching/

Git 代码库

  1. Admin Frontend: "git clone ssh://git@192.168.6.4:2222/xmlife-operating.git"
  2. HTML:                 "git clone ssh://git@192.168.6.4:2222/xmlife-html.git"
  3. iOS:                     "git clone ssh://git@192.168.6.4:2222/xmlife-ios.git"

  4. Android:               "git clone ssh://git@192.168.6.4:2222/xmlife-android.git"
  5. Server:                 "git clone ssh://git@192.168.6.4:2222/xmlife-server.git"

(注意: 请将自己的ssh public key传给 lmj@ipaitao.com 或 qc@ipaitao.com 以添加权限)

(注意:ssh key生成)

ssh-keygen -t rsa -C "your_email@example.com"

根据个人的邮箱生成,生成一个公共ssh.pub和一个私有的ssh,将ssh放到.ssh(隐藏文件  cd ~/.ssh 文件路径)文件夹下边,公共的ssh.pub传给 lmj@ipaitao.com  qc@ipaitao.com 以添加权限(注意下边的sshkey用id_rsa)

Git 配置

git config --global --add user.email "请改成自己邮箱"
git config --global --add user.name "改成RTX上的用户名"
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status -s
git config --global alias.l "log --oneline --decorate -12"
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"

 

Git 常用命令列表

https://github.com/yanrk/HelloWorld/blob/master/%3C%3CGit%E5%9B%BE%E8%A7%A3%3E%3E%E7%AC%94%E8%AE%B0

教程: http://www.bootcss.com/p/git-guide/ 

 

Git 命令的自动补全

  1. 下载 git-completion.bash , 将其放在 home 目录   https://github.com/markgandolfo/git-bash-completion
  2. 修改 .bashrc ,  加入 "source ~/.git-completion.bash"

Git与Subversion的命令对比表

操作
Git
Subversion
复制数据库 git clone svn checkout
提交 git commit svn commit
确认状态 git status svn status
确认差异 git diff svn diff
确认记录 git log svn log
添加 git add svn add
移动 git mv svn mv
删除 git rm svn rm
取消修改 git checkout / git reset svn revert (※1)
创建分支 git branch svn copy (※2)
切换分支 git checkout svn switch
合并 git merge svn merge
创建标签 git tag svn copy (※2)
更新 git pull / git fetch svn update
反映到远端 git push svn commit (※3)
忽略档案目录 .gitignore .svnignore
※1. SVN的revert是用来取消修改,但Git的revert是用来消除提交。所以即使是同样的命令,在SVN和Git里的含义是不同的。
※2. SVN的分支与标签在构造上是相同的,但在Git其构造明显是不一样的。
※3. SVN没有本地数据库/远程数据库的概念,所以提交会马上反映到远程里。但Git的本地数据库和远程数据库的反映方法是不一样的。

Git常用场景

  1. 假设拿到需求x, 现在开始开发:
    1. git checkout -b feature_x origin/master            ( 新建一个branch用于feature x开发)
    2. bla bla bla ....  coding..., 然后 git commit -am "feature x bla bla bla"
    3. 不定期使用 git commit -a --amend 来将最新更改合并到commit里.
  2. 在开发途中, 突然有紧急bug, 需要先进行处理:
    1. git commit -a --amend 确保所有更改已保存;
    2. git checkout -b bugfix1 origin/master               ( 新建一个bugfix分支)
    3. bla bla bla ....  coding..., 然后 git commit -am "bugfix bla bla bla"
    4. 之后确定bug已经修复之后: "git push origin HEAD:master" 将本分支里的commit同步到server的代码仓库
  3. 重新回到之前feature x的开发中:
    1. git checkout feature_x
    2. bla bla bla, continue coding...

由上面的操作可以看出, branch用来分离和保存没一个任务所修改的代码; 注意: 和SVN不同的是, Git的branch都是创建在本地, 所有不用担心branch的数量和对server的影响. 对于小的改动, 可以直接用本地的任何branch里面直接push到server的master分支. (对于大规模的改动, 和 覃超 Eric 周振 联系, 将本地修改push到server的独立新分支.

Git权限控制

http://gitolite.com/gitolite/g2/aac.html

posted @ 2016-05-24 14:03  renyangli  阅读(171)  评论(0编辑  收藏  举报