Git教程

Posted renyangli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git教程相关的知识,希望对你有一定的参考价值。

 

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

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

Git 代码库

  1. Admin Frontend: "git clone ssh://[email protected]:2222/xmlife-operating.git"
  2. html:                 "git clone ssh://[email protected]:2222/xmlife-html.git"
  3. ios:                     "git clone ssh://[email protected]:2222/xmlife-ios.git"

  4. android:               "git clone ssh://[email protected]:2222/xmlife-android.git"
  5. Server:                 "git clone ssh://[email protected]:2222/xmlife-server.git"

(注意: 请将自己的ssh public key传给 [email protected] 或 [email protected] 以添加权限)

(注意:ssh key生成)

ssh-keygen -t rsa -C "[email protected]"

根据个人的邮箱生成,生成一个公共ssh.pub和一个私有的ssh,将ssh放到.ssh(隐藏文件  cd ~/.ssh 文件路径)文件夹下边,公共的ssh.pub传给 [email protected]  [email protected] 以添加权限(注意下边的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

以上是关于Git教程的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段