zoukankan      html  css  js  c++  java
  • Git常见使用方法

     图参考:http://www.ruanyifeng.com/blog/2014/06/git_remote.html

    1、GitLab配置

    git config --global user.name "xxx"      -- 配置用户名,上传本地 repository 到服务器上的时候,在 Github 上会显示这里配置的上传者信息
    git config --global user.email "xxx"     -- 配置邮箱
    git config --list                 -- 查看配置列表
    配置 sshkey : 上传代码时使用这个 sshkey 来确认是否有上传权限
        1. 创建本地 ssh : ssh-keygen -t rsa -C "注册邮箱"
        2. 在 Github 中添加这个 sshkey : 
            复制  ~.sshid_rsa.pub 文件中的内容;
            登录 Github --> Account Setting  --> SSH-KEY --> Add SSH-KEY --> 粘贴id_rsa.pub中的内容(GitLab上类似);
        3. 验证: ssh -T git@github.com
            出现 Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. 说明配置成功,可以连接上 Github

    2、建立仓库

    git init          -- 创建本地仓库
    git remote add origin git@github.com:用户名/仓库名.git
                        -- 把本地仓库和远程仓库关联起来, 如果不执行这个命令的话,每次 push 的时候都需要指定远程服务器的地址

    3、下载/更新

    git pull origin master

    4、修改、提交、推送

    git add
    git add -A      -- 将改动添加到本地仓库中
    git rm xxx      -- 从本地仓库中删除指定文件
    git rm -r xxx   -- 从本地仓库中删除指定文件夹
    git rm --cached xxx  --从本地仓库中删除指定文件,但是保留该文件。含义是“取消追踪该文件”。 git commit
    -m "注释" -- 把本机缓存中的内容提交到本机的 HEAD 里面 git push origin master -- 把本地的 commit push 到远程仓库中

    5、使用 .gitignore 文件忽略指定的内容

    1. 在本地仓库根目录创建 .gitignore 文件。Win7 下不能直接创建,可以创建 ".gitignore." 文件,后面的标点自动被忽略;
    2. 过滤文件和文件夹: [Tt]emp/ 过滤 Temp	emp 文件夹; *.suo 过滤 .suo 文件;
    3. 不过滤文件和文件夹: !*.c

    6、解决冲突

    有的时候执行git pull的时候会提示冲突,又不好解决,怎么办呢:
    1. 如果希望暂时保留改动,仅仅并入新配置项,那么就执行下面的命令。然后可以使用 “Git diff -w +文件名” 来确认代码自动合并的情况:
    git stash
    git pull
    git stash pop

      2. 如果希望用代码库中的文件完全覆盖本地工作版本:

    git reset --hard
    git pull

      3.  编辑冲突

    git mergetool

    7、分支操作

     在多人协作时,如果还要切换电脑,那么切换到自己的分支比较妥当,防止干扰别人提交:
    git checkout Branch_KuLiuheng        // 切换到指定分支
    
    git checkout .           // 丢弃本地所做的所有修改

    git merge --no-ff master   // 将master 主干的内容合并到当前分支

    git branch    // 查看本地分支情况
    git branch -a  // 查看远端分支情况

    git branch -D Branch_KuLiuheng    // 强制删除本地分支

    8、撤销

       如果不小心提交了内容希望撤销回去,那么需要输入这些命令:
    git revert ***(commit号)

    git push
      执行了这个操作后,会产生一个普通的修改,可以直接push发布出去。
      如果想撤销一个“Merge”操作呢,相对要麻烦一点点,如果用上面的命令将会出现一个错误“error: Commit g is a merge but no -m option was given.”,
    这是什么意思呢?原因是git认为合并的两个分支地位是等同的,git并不知道应该撤掉哪一个,所以需要我们来指定一下。操作步骤如下:
    #git show 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548     // 先看下合并信息,这个提交号是我想撤销的合并操作
    
    commit 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548   
    Merge: 312a518 fa87415
    ... ...
    
    #git show 312a518         // 分别看下这两个分支的提交信息,来决定撤销哪个
    #git show fa87415
    
    #git revert -m 2 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548     // 这里的"-m 2"就是指定fa87415为master主干,如果是312a518为主干就指定"-m 1"

    9、设置Git提交模板

      在用户目录下会有一个 .gitconfig,一般可以通过 git config 命令来设置内容,也可以手动修改。这个文件里面可以指定git提交的默认模板,比如这么写:

    [user]
        name = 库流亨
        email = liuheng.klh@autonavi.com
    
    [commit]
        template = E:\personalWorkspace\gitt\config\commit_template.txt

      模板是个文本文件,里面可以随意写下默认希望git填充的内容:

    fix #
    【问题原因】
    【解决方案】
    【影响范围】

    10、解决多平台git提交时换行符引起的空白提交问题

      默认状态下,git在跨平台提交时,总会因为换行符的不同而导致空白提交,用git diff看不出任何差别,非常烦人。

      我通过 git config去设置 core.safecrlf = true 来自动转换换行符其实挺麻烦的,还不如在工程根目录创建一个 .gitattributes 文件,填写如下内容:

    # Set the default behavior, in case people don't have core.autocrlf set.
    * text=auto
    
    # Explicitly declare text files you want to always be normalized and converted
    # to native line endings on checkout.
    *.c text
    *.cpp text
    *.h text
    *.java text
    
    # Declare files that will always have CRLF line endings on checkout.
    *.sln text eol=crlf
    *.css text eol=crlf
    *.js  text eol=crlf
    *.md  text eol=crlf
    *.txt text eol=crlf
    *.sql text eol=crlf
    *.php text eol=crlf
    *.c text eol=crlf
    *.cpp text eol=crlf
    *.h text eol=crlf
    *.java text eol=crlf
    
    # Denote all files that are truly binary and should not be modified.
    *.png binary
    *.jpg binary

    11、日志操作

    参考官方文档:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2 

  • 相关阅读:
    魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
    Android在跳转市场进行评分问题总结
    轻松学会多线程(四)——synchronized同步keyword知多少
    对于stackoverflow的中文翻译的相关问题
    HBase总结(二十)HBase经常使用shell命令具体说明
    Tiny语言执行环境TM机源码
    【IOS工具类】获得设备唯一标识(兼容IOS5,6,7)
    VMwave下Ubuntu扩展磁盘空间
    wordpress搭建后地址栏页面显示IP地址的问题
    成都Java培训机构太多,该如何选择呢?
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/5679577.html
Copyright © 2011-2022 走看看