Git指南详细

初识Git

git介绍

  • 是什么:版本控制系统

  • 优点:防止代码丢失,协助开发,可进行代码紧急还原,记录每一版本代码

git安装

  • Mac:https://sourceforge.net/projects/git-osx-installer/
  • Windows:https://git-for-windows.github.io/
  • Linux:apt-get install git

git命令

  1. 先输入git,检查是否安装成功

  2. 本地git操作例子:

    1. mkdir test (创建文件夹test)
    2. cd test (切换到test目录)
    3. touch a.md (新建a.md文件)
    4. git init (初始化git仓库)
    5. git status
    6. git add a.md
    7. git status
    8. git commit -m ‘first commit’
    9. git log

    总结:仓库库初始化–>提交代码到暂存区–>提交–>查看日志信息

  3. 查看分支,切换分支

    1. git branch a (创建a分支)

    2. git checkout a(切换到a分支才可以开发)

    3. git branch(检查切换是否成功)

      PS:一步到位新建a分支并且一步切换到这个分支的语法是:git checkout -b a

  4. 合并分支

    1. git checkout master(切换回master主分支)
    2. git merge a (把a分支的代码合并过来)
  5. 删除分支

    1. git branch -d a (删除分支)
    2. git branch -D a (强制删除)
  6. 建立版本标签

    1. git tag v1.0 (在当前代码状态下新建一个v1.0的标签)
    2. git checkout v1.0(切换到对应的版本)

github提交代码

SSH

  • 是一种网络协议
  • git服务器需要选择ssh公钥进行授权

ssh配置

  1. ssh

  2. ssh-keygen -t rsa(后面加三个回车键,不用密码,直接生成id_rsa是密钥,id_rsa.pub就是公钥

  3. 拷贝公钥信息–>github下

    PS:这2个文件分别:Linux/Mac系统在~/.ssh下,win系统在 /c/Documents and settings/username/.ssh 下, 都是隐藏文件,

GitHub上添加SSH key

  1. 设置–>ssh and GPS keys—> New SSH key–>直接粘贴到key的文本框中
  2. 在命令行输入:ssh -T [email protected]

Push&Pull

  1. git push origin master(本地和远程同步)
  2. git pull origin master(远程代码拉下来,一般先拉后推,防止冲突)

**提交代码

总结:切换到对应的项目,连接,然后提交

  1. git clone [email protected]:stormzhang/test.git(把远程项目拉到本地,它以为仓库,可直接做修改,提交操作)
  2. git push origin master(提交回远程)
  3. 举例子(将test2项目内容提交到远程的test项目里):
    1. GitHub上建一个test项目
    2. 切换到test2项目下执行关联操作:git remote add origin [email protected]:stormzhang/test.git
    3. git remote -v(查看这个项目有哪些远程仓库)
    4. git push origin master(提交代码到远程仓库)
  4. 备注在提交仓库之前先执行如下操作:
    1. git config —global user.name “stormzhang”
    2. git config —global user.email “[email protected]

git进阶

用户名和邮箱

  1. 前一节备注已说,不废话,想单独一个项目换了,那么你就直接省去global

alias和其他用法

  1. 改别名
    1. git config --global alias.co checkout
    2. git config --global alias.ci commit
    3. git config --global alias.st status
    4. git config --global alias.br branch
    5. git config --global alias.psm ‘push origin master’
    6. git config --global alias.plm ‘pull origin master’
    7. git config --global alias.lg “log --graph --pretty=format:’%Cred%h%Creset -%C(yellow)% d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit --date=relative”
  2. 其他配置
    1. git config --global core.editor “vim” # 设置Editor使用vim
    2. git config --global color.ui true(给git点颜色)
    3. git config --global core.quotepath false # 设置显示中文文件名
  3. 其他方法
    1. ​ git config -l (查配置)
    2. ​ ~/.gitconfig(配置文件)
  4. diff
    1. ​ git diff(文件可以查看改动)
    2. 实际就是比较当前文件和暂存区的差别,或者是比较暂存区的和版本库的差别
  5. checkout(切换和撤回没到暂存区的文件)
    1. git checkout develop
    2. git checkout v1.0
    3. git checkout ffd9f2dd68f1eb21d36cee50dbdd504e95d9c8f7 # 后面的一长串是commit_id,是每次com mit的SHA1值,可以根据 git log 看到。
    4. git checkout a.md
  6. stash(暂时切到别的分支,修复完bug再切回来,而且代码也 能保留的)
    1. 前提没有commit
    2. git stash(先把当前没有commit代码暂存起来)
    3. git status(看到自己分支很干净)
    4. git stash list(新建了一条stash数据)
    5. 于是你就可以切换回原来的分支,修复bug,然后commit,然后回来原本的分路
    6. git stash apply(还原原来分路的状态)
    7. git stash drop(你就把暂存区的stash数据删除)【或者一部到位的方法:git stash pop而git stash clear是清空所有的stash]
  7. merge & rebase(合并分支模块到主分支上)
    1. git checkout master
    2. git merge featureA

解决冲突问题

  • 查看本地分支列表
    git branch
  • 查看远程分支列表
    git branch -r
  • 删除本地分支
    git branch -d develop
    git branch -D develop (强制删除)
  • 删除远程分支
    git push origin :develop
  • 如果远程分支有个develop,而本地没有,你想把远程的 develop分支迁到本地: git checkout develop origin/develop
  • 同样的把远程分支迁到本地顺便切换到该分支:
    git checkout -b develop origin/develop

团队协作图(Git Flow)

  • GitHub 开源地址:https://github.com/nvie/gitflow
  • http://stormzhang.com/git/2014/01/29/git-flow/
  • 实际就是比master和develop 多了三个分支,具体是开发新功能分支,准备发布分支,修复主线问题分支
  • 流程图:
    • develop—>feature—>develop(开发新功能)
    • develope–>release–>develpe–>master(准备发布分支)
    • master->hotfix–>master(修复master紧急问题)

总结

  1. 先看了初识git
  2. Git 和github创建连接
  3. 重点关注提交代码例子,明确流程
  4. 学习git的用法,重点关注:stash,checkout,merge用法
  5. 明确实际的git flow流程用法

猜你喜欢

转载自blog.csdn.net/weixin_44306987/article/details/106581725