美文网首页iOS
GIT常用命令

GIT常用命令

作者: chernyog | 来源:发表于2015-11-13 15:30 被阅读345次

    GIT常用命令(小结)

    • 谈及源码管理工具,首选SVNGIT,在工作中也都有所接触,但个人更喜欢使用GIT,下面就是我记录的在工作中用到的操作命令。

    操作流程图

    Git操作流程图.png

    一、全局配置


    1. 告诉git你是谁(设置 | 修改 用户名)

      git config --global user.name "username"

    2. 告诉git怎么联系你(如果注册了 github 账号,邮箱最好和 github 账号统一)(设置 | 修改 邮箱)

      git config --global user.email "xxx@126.com"

    3. 查看用户名和邮箱

      git config user.name

      git config user.email

    二、初始化本地代码仓库


    1. 初始化代码仓库

      git init

      进入新的公司,一般都需要从公司的远程代码托管仓库中clone出一份代码

    2. 从服务器分支中创建本地分支

      a. 加入我在本地新建了一个分支

      git checkout origin/originBranchName -b localBranchName

      b. 我在这个分支上新建了一些文件,要把这个分支推送到自己的远程分支服务器上

      git push origin localBranchName

    3. 从服务器克隆代码(有子模块,需要递归recursive)

      git clone --recursive git@git.jimubox.com:xxx/xxxxxx.git

    三、修改&提交


    1. 添加修改的文件

      git add MainView.h (添加某个文件)

      git add . (添加所有已经修改的文件)

    2. 提交修改

      git commit -m "注释"

      git commit -a -m "注释"

      git commit -am "注释"

    3. 从远程分支中拉最新代码

      git pull origin originBranchName

    4. 将本地分支代码提交到自己的远程分支中

      git push origin localBranchName

    5. 切换到服务器远程分支上

      git checkout originBranchName

    6. 合并分支(远程分支&本地分支做个合并)

      git merge localBranchName

    7. 把最新修改同步到服务器的远程分支上

      git push origin localBranchName

    8. 切换到自己的本地分支,完成一次修改提交操作

      git checkout localBranchName

    备注: 修改&提交时,Untracked files(未监视的文件)的处理

    有时候会出现Untracked files,我们又不想add到仓库,但是使用git checkout .git reset 都没法删除这些未监视的文件,如下图:

    git-untracked files.png
    • 解决办法:
      • 删除文件:git clean -f
      • 删除目录: git clean -fd
    • Tips
      • 删除前,建议加上-n参数,先看看会对哪些文件产生影响,避免误操作!比如:git clean -nfgit clean -nfd

    四、版本回撤


    1. 回撤到上一个版本

      git reset --hard HEAD^

    2. 回撤到上上一个版本

      git reset --hard HEAD^^

    3. 切换到任意版本

      git reset --hard 版本号(前6位)

    4. 撤销某一个文件当前的修改

      git checkout 文件名

    5. 撤销当前所有修改

      git checkout .

    6. 查看分支引用记录,能够查阅所有的版本号

      git reflog

    7. 从分支的某个提交记录签出新的分支

      • git checkout 版本号(前6位)
      • git branch 新的分支名【产生新的分支】

    五、查看文件修改记录


    1. 查看当前分支

      git branch

    2. 查询某人的提交记录

      git log --author="姓名"

    3. 查看文件修改记录(历史) 文件追踪,再也不怕未知的修改了,呵呵

      git blame VideoSquare/HotViewController.mm

    4. 查看文件修改内容

      git difftool VideoSquare/HotViewController.mm 新窗口弹出

      git diff VideoSquare/HotViewController.mm 原始窗口显示

    六、分支操作


    1. 查看当前分支

      git branch

    2. 查看远程分支

      git branch -r

    3. 创建本地分支(注意不会自动切换分支

      git branch [name]

    4. 切换分支

      git checkout [name]

    5. 创建新分支并立即切换到新分支

      git checkout -b [name]

    6. 删除分支

      a. 只能删除已经合并过的分支
      b. 没有合并的分支不能删除
      c. 如果要强行删除分支,可以使用 -D 选项
      

      git branch -d [name]
      git push origin --delete <branchName> 删除远程分支

    6.1 删除本地的无效远程分支
    git remote prune origin

        // 输出日志如下:
        Pruning origin
        URL: git@git.jimubox.com:app-labs/app-background-center.git
        * [pruned] origin/develop_new
    
    1. 合并分支

      git merge [name]

    2. 创建远程分支(本质上是将本地的分支 push 到远程

      git push origin [name]

    七、远程操作


    1. 查看当前分支

      git clone url

    2. 将本地修改内容推送到远程代码仓库

      git push

    3. 将远程代码库的变化更新到本地

      git pull

    八、标签

    1. 创建标签

      git tag 标签名称

      git tag -a 标签名称 -m 附注

    2. 在指定commit上打标签

      git tag -a 标签名称 commitCode -m 附注

    3. 查看标签列表

      git tag

    4. 查看标签信息

      git show 标签名称

    5. 删除标签

      git tag -d 标签名称

    6. 推送标签到远程

      git push origin 标签名称

      git push origin --tags

      推送到远程的标签,如果想要删除远程标签,就得先删除本地(git tag -d 分支名称),再删除远程标签(git push origin :refs/tags/标签名称)
      

    九、其它


    1. 删除文件

      git rm -r 文件名称

    2. .gitignore规则不生效的解决办法

       # 手动修改gitignore文件,添加新的忽略规则失效的原因是,.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
       git rm -r --cached .
       git add .
       git commit -m 'update .gitignore'
      

    十、高级用法


    Git - 子模块

    十一、附件


    相关文章

      网友评论

        本文标题:GIT常用命令

        本文链接:https://www.haomeiwen.com/subject/odxkhttx.html