zoukankan      html  css  js  c++  java
  • git版本工具(团队开发常用)

    1、创建一个版本库

    mkdir repository    //创建一个文件夹
    git init        //把目录编程git可以管理的仓库

    2、提交文件到版本库

    git add test.txt    //添加文件到版本库,此时还没有提交到git
    git commit -m "提交注释"    //告诉Git,把文件提交到仓库
    3、远程
    查看当前git的状态:        git status    
    查看修改变的内容:        git diff
    查看历史记录:                git log
    查看修改的headid:       git reflog
    查看当前的所有分支:    git branch [-a|-r]    //-a 所有分支,-r:远程分支
    查看远程库信息   :            git remote
    查看远程库详细信息:        git remote -v

    查看远程仓库:$ git remote -v

    添加远程仓库:$ git remote add [name] [url]

    删除远程仓库:$ git remote rm [branch-name]

    修改远程仓库:$ git remote set-url --push [name] [newUrl]

    拉取远程仓库:$ git pull origin [remoteName]:[localBranchName]

                                git fetch origin [remoteName]:[localBranchName]    //获取到当前分支

    推送远程仓库:$ git push [remoteName] [localBranchName]

    4、与远程git关联

    a、在git上创建一个Repository
    b、在本地执行命令:git remote add origin git@github.com:xiexingen/learngit.git    //将本地仓库与远程关联

    5、从远程下载到本地

    git clone <地址> [文件夹名称]    //将远程项目复制到本地之地文件加下
    6、分支
    创建分支:git branch <branch Name>
    切换分支:git checkout <branch Name>
    创建+切换分支:git checkout -b <branch Name>
    合并分支到当前分支:git merge <branch Name> 
    查看所有分支:git branch -a
    从指定分支创建并切换到分支:git checkout -b <local-branchName> <origin/branchName>
    删除分支:    git branch [-d|-D] [local-branch] //-d 只能删除已经参与合并的分支,-D:可以删除为合并的分支
    git merge --no-ff -m'comment' <branch Name>    //合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
     
    7、Bug分支
     
    git stash        //相当于tfs中的搁置
    git stash apply    //取消搁置到本地
    git stash drp     //删除搁置集
    git stash pop        //取消搁置到本地并删除搁置集
    git stash list    //查看搁置集
    git stash apply stash@{0}    //恢复指定的搁置集
     
    8、多人协作
     
    A、git push -u origin <local-branch>[:remote-branch]    //吧本地库推送到远程库上,-u,不但回吧本地的分支推送到远程新的master分支,还会把本地分支和远程分支关联起来,在以后的推送或者拉去时就可以简化命名
    后面如果有修改的话,只需要执行:git push origin <local-branch>    //吧本地分支的最新修改推送到服务器
    B、从本地推送分支,使用git push origin <local_branch>:<remote-branch>,如果推送失败,先用git pull抓取远程的新提交;
    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
    c、建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

      从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

     
    9、回滚
     
    git reset --hard HEAD^    //回到上一次改动
    git reset -hard 3628164    //3628164 headid 恢复到指定的记录
    10、取消
    git checkout --test.js    //吧test.js文件在暂存区的修改全部撤销

    11、版本(tag)操作相关命令

    查看版本:$ git tag

    创建版本:$ git tag [name]

    删除版本:$ git tag -d [name]

    查看远程版本:$ git tag -r

    创建远程版本(本地版本push到远程):$ git push origin [name]

    删除远程版本:$ git push origin :refs/tags/[name]

    合并远程仓库的tag到本地:$ git pull origin --tags

    上传本地tag到远程仓库:$ git push origin --tags

    创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

    12、忽略一些文件、文件夹不提交

    在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

    target

    bin

    *.db

    13、生成密钥

    1.查看是否已经有了ssh密钥:cd ~/.ssh

    如果提示:No such file or directory 说明你是第一次使用git。

    如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。

     $ mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa*
    生成新的密钥:

    Ssh-keygen –t rsa –C “defnngj@gmai.com”

    note:在coding.net上添加该密钥可以再push或者pull项目是不需要再次输入用户名和密码

    14、使用BCompare来比对文件

    [diff]
        tool = bc3
    [difftool]
        prompt = false
    [difftool "bc3"]
        cmd = "D:/Program Files/Beyond Compare 3/BComp.exe" "$LOCAL" "$REMOTE"
    [merge]
        tool = bc3
    [mergetool]
        prompt = false
        keepBackup = false
    [mergetool "bc3"]
        cmd = "D:/Program Files/Beyond Compare 3/BComp.exe" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
        trustExitCode = true
    [alias]
        dt = difftool
        mt = mergetool

    使用的时候 通过git difftool 即可

     
  • 相关阅读:
    多线程访问成员变量与局部变量
    Could not resolve placeholder 解决方案
    instanceof, isinstance,isAssignableFrom的区别
    YYYY-mm-dd HH:MM:SS
    整合Spring Data JPA与Spring MVC: 分页和排序
    dubbo配置文件xml校验报错
    安装eclipse插件时出现问题
    Windows上搭建hadoop开发环境
    jquery validate 在ajax提交表单下的验证方法
    HDU 1698 Just a Hook(线段树区间替换)
  • 原文地址:https://www.cnblogs.com/xiexingen/p/4476370.html
Copyright © 2011-2022 走看看