zoukankan      html  css  js  c++  java
  • git安装配置技巧

    安装

    1. centos
    yum install git
    
    1. ubuntu
    apt-get install git
    
    1. 源码安装
    wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz
    tar zxvf git-2.5.0.tar.gz
    cd git-2.5.0
    
    ./configure
    
    make && make install
    

    配置

    git --version //查看版本
    
    git配置文件位置 ~/.gitconfig
    
    git config --global user.name "你的git账户名"       //配置git账户名
    
    git config --global user.email "你的git账户邮箱"    //配置账户邮箱
    
    一、AutoCRLF
    #提交时转换为LF,检出时转换为CRLF--Windows使用
    git config --global core.autocrlf true
    
    #提交时转换为LF,检出时不转换--Mac Uniux上使用
    git config --global core.autocrlf input
    
    #提交检出均不转换--仅运行在windows上使用
    git config --global core.autocrlf false
    二、SafeCRLF
    #拒绝提交包含混合换行符的文件
    git config --global core.safecrlf true
    
    #允许提交包含混合换行符的文件
    git config --global core.safecrlf false
    
    #提交包含混合换行符的文件时给出警告
    git config --global core.safecrlf warn
    
    设置区分大小写
    git config --global core.ignorecase false
    
    避免PULLING提交合并
    git config --global branch.autosetuprebase always
    
    颜色高亮
    git config --global color.ui true
    git config --global color.status auto
    git config --global color.branch auto
    
    设置默认编辑器
    git config --global core.editor vim
    
    设置默认的合并工具
    git config --global merge.tool vimdiff
    查看配置
    git config --global --list
    
    SSH key生成
    ssh-keygen -t rsa -C "你的邮箱"    //生成的你的秘钥
    cat ~/.ssh/id_rsa.pub                    //查看是ssh密钥:cd ~/.ssh
    在github上面添加ssh 秘钥
    
    多个ssh key共存/切换
    依次生成key
    ssh-keygen -t rsa -C "你的邮箱"  -f ~/.ssh/github
    
    添加私钥
    ssh-add ~/.ssh/github
    
    如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:
    
    ssh-agent bash
    然后再运行ssh-add命令。
    
    # 可以通过 ssh-add -l 来确私钥列表
    ssh-add -l
    
    # 可以通过 ssh-add -D 来清空私钥列表
    ssh-add -D
    
    在~/.ssh中增加config配置文件
    vi ~/.ssh/config
    内容
    #github home-win-key
    Host github.com ##可以随意命名,链接时使用这个名字
    HostName github.com
    User git
    Port 22
    IdentityFile ~/.ssh/github
    
    #oschina home-win-key
    Host git.oschina.net ##可以随意命名,链接时使用这个名字
    HostName git.oschina.net
    User git
    Port 22
    IdentityFile ~/.ssh/oschina
    
    #coding home-win-key
    Host git.coding.net ##可以随意命名,链接时使用这个名字
    HostName git.coding.net
    User git
    Port 22
    IdentityFile ~/.ssh/coding
    
    git remote 修改远端 git@git.oschina.net:xx/xx 为别名(Host):xx/xx
    
    测试配置
    ssh -T git@git地址(例如:git.oschina.net、github.com)
    

    命令

    git init            //初始化环境
    
    git clone 项目地址        //在本地建立远程仓库的副本
    
    git status            //查看当前目录的git状态,包含当前所在的分支,是否有新增文件,是否有修改文件等
    git status -s            //简洁模式显示
    git config -l          //显示git配置
    
    git log                //查看提交的历史记录,包含日志、版本号等。(":wq" 退出日志查看状态)
    git reflog            //查看所有日志包含删除日志
    git stash                     //将当前分支尚未commit的内容保存到暂存区
    git stash list                 //当前分支的暂存区暂存列表
    git stash pop                //重新加载最后一次保存到暂存区的内容
    
    git diff 文件名称            //查看文件修改内容,“---”为更改前内容,“+++”为更改后内容
    git diff HEAD^ HEAD     //两次提交的差异
    git diff 35d9747a0cddeadf8a7ce76f518bc5be1ad54d6c^ d7ad404505f79c6678c04bb6c09c1607fc5d5ae9
    
    git tag                        //用来为代码历史记录中的某一个点指定一个永久的书签, 一般来说它用于发布相关事项
    
    git branch            //查看本地仓库的所有分支
    git branch -r            //查看远程分支
    git branch –a            //查看本地&远端仓库的所有分支
    git branch -v            //查看各个分支最后一次提交
    git branch 分支名称        //创建分支
    git branch -d 分支名称        //删除本地分支
    git branch -D 分支名称        //强制删除分支
    git branch --merged        //查看合并前的分支
    git branch –-no-merged        //查看哪些分支未合并入当前分支
    
    git checkout 分支名称        //切换到指定分支
    git checkout –b 分支名称    //创建分支并切换到新建分支
    
    git add 文件名称        //在工作目录中新增文件:示例:git add README.md
    git add .            //添加所有文件到仓库
    git reset 文件名称        //撤销添加
    
    git commit –m "备注"        //提交当前目录所有修改到本地仓库
    git commit –a            //提交所有修改,该操作会打开vim手动指定要提交的文件。(":wq" 保存并退出)
    git reset --hard commit_id     //撤销提交
    
    git pull <远程主机名> <远程分支名>:<本地分支名>        //取回远程主机某个分支的更新,再与本地的指定分支合并。
    git pull origin next:master    //取回origin主机的next分支,与本地的master分支合并
    //如果远程分支是与当前分支合并,则冒号后面的部分可以省略
    git pull origin next
    //上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
    git fetch origin
    git merge origin/next
    
    git fetch <远程主机名>        //将某个远程主机的更新,全部取回本地
    git fetch <远程主机名> <分支名>    //将某个远程主机的指定分支更新取回本地
    
    git merge 分支名称        //将指定分支合并覆盖到当前分支
    
    git rebase 分支名称        //把提交(补丁)临时存放到.git/rebase中,更新到最新版本,把补丁应用到最新分支中
    //rebase解决冲突,解决完冲突执行git add 无需执行git commit 执行 git rebase --continue
    git rebase –skip        //跳过
    git rebase --abort        //任何时候可以执行,终止合并返回rebase前状态
    
    git reset --hard HEAD^
    git reset --hard 3628164     git 的版本都是很长的字符串
    
    git revert
    
    git push <远程主机名> <本地分支名>:<远程分支名>        //将本地分支的更新,推送到远程主机
    git push origin master:master        //将本地master推送到远端master
    //可写git push origin master
    git push origin test:test               //提交本地test分支作为远程的test分支
    git push origin :master            //如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
    # 等同于
    $ git push origin --delete master    //删除origin主机的master分支
    注意:
    git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地仓库提交到远程仓库的master分支中
    等价于
    git remote add origin ssh://git@dev.lemote.com/rt4ls.git  //添加远端别名
    
    合并后冲突解决办法
    1. 提交全部
    git commit -a
    
    2. 如果不想提交全部,那么可以通过添加 -i 选项
    git commit file/to/path -i -m "merge"
    

    git流程

    git flow
    https://about.gitlab.com/2014/09/29/gitlab-flow/
    中文版 http://www.15yan.com/story/6yueHxcgD9Z/
    
    git各种流程介绍
    https://github.com/oldratlee/translations/blob/master/git-workflows-and-tutorials/README.md
    
    git-flow 备忘清单
    http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
    
  • 相关阅读:
    关于EasyUI datagrid 无法在dialog中显示的问题分析及解决方案!
    WPF 矩形框8个控制点伸缩及拖拽
    Socket异步通信及心跳包同时响应逻辑分析(最后附Demo)。
    C#断点续传下载。
    C# 全屏坐标及区域坐标获取。自定义光标及系统光标描边捕捉显示。
    解决项目无法添加VBIDE问题
    python爬虫-入门-了解爬虫
    字符串输入数字
    面试题3--数组中的重复数字(new数组的新写法)
    等号操作符重载为什么不能用友元函数大揭秘,以及函数没有等到重载的时候赋值会出现什么现象(盲点)
  • 原文地址:https://www.cnblogs.com/51fx/p/7019419.html
Copyright © 2011-2022 走看看