git

来源:互联网 发布:3m源码 编辑:程序博客网 时间:2024/05/29 17:19

git拾遗

  1. git和svn的区别

    CVCSs:集中式的版本控制(SVN)

    ​ 有个集中的SVN服务器,每个version只记录文件的变化,不变的不记录

    ​ 导致的问题:push和pull需要联网操作,如果服务器硬盘坏了会出问题

    DVCSs:分布式的版本控制,每个人本地都保存了所有的提交记录,远程仓库不变的代码会记录引用。同时本地也能进行版本控制

  2. git commit id

    commit id 是sha1加密算法计算出来的,可以做文件恢复

  3. 配置步骤

    git config –global user.name ‘xx’

    git config –global user.email ‘xx’

    ssh-kegen -t rsa -C ‘邮箱’ 配置ssh (MR的时候使用)

    git的协议是走ssh的(当然也可以走http协议)

  4. 配置多个git 账户

    在.ssh下新建一个config文件(没有后缀)

    # 配置github.comHost github.com                    HostName github.com   IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github   PreferredAuthentications publickey   User username1# 配置git.oschina.net Host git.oschina.net    HostName git.oschina.net   IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina   PreferredAuthentications publickey   User username2
  5. git命令

    git 命令 –help 查看帮助

    git log –graph

    git add . 添加当前目录所有

    git config –list 显示当前的所有的配置

    git fetch 同步记录,但是不会合并数据,合并数据需要git pull

    git remote -v 查看远端

    git branch -D 删除本地分支

    git branch 查看本地分支

    git branch -a 查看包含远程的分支

    checkout -b dev-abc 切换分支

    命令合并的功能:两条命令新增文件并push:

    git config --global alias.ac "!git add -A && git commit -m"git ac 'xx.txt' //add 和 commitgit push origin master

    把本地项目推送到远端(远端没有项目)

    git init远端创建一个同名的项目,并拿到ssl地址git remote add origin 地址 (origin是名称,可以定义其他的)git pull origin master添加文件-->add-->commitgit push origin master

    解决本地reset head之后push失败问题

    git push -f origin master

    撤销工作区的更改,和版本库的保持一致:

    git checkout .

    改了一个文件但未完成,未add commit,又要切换到另外一个分支时使用stash

    解决冲突后需要git ac 再push

  6. 工作区

    .git 下的HEAD可以查看指向哪个分支

  7. git的几个状态

    Untracked Unmodified Modified Staged

  8. git hook

    用于自动部署

  9. rebase命令

    dev 合到master,rebase命令在dev分支上

    git rebase master

    如果有冲突要解决冲突

  10. .gitignore不生效的原因及解决

    如果文件已经被git管辖,再放入ignore文件中,不会生效的

    使生效:git rm –cached 文件

Jenkins

持续集成,持续交付(自定义不同的流程)Jenkins是java写的

原创粉丝点击