• git开发流程、常用命令及工具、TortoiseGit使用及常见问题


    根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支。

    一、开发流程

     - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上branch一个新的本地分支xname(或者branch一个已有的远程分支),然后checkout切换到这个本地分支上,开始开发;

     - 开发过程中可以不断的commit到本地,可以分阶段做版本标记(俗称打tag);

     - 开发完成之后,把本地分支xname ,push origin到远程分支xname上;(也可以push origin v0.1.2 把某个本地tag推送到服务器上)

     - 远程分支xname和master合并。

    二、常用命令

    安装完成git之后,在文件夹右键菜单可以找到git bash命令行工具。也可以配置下环境变量使用windows的cmd命令行工具。

    windows的cmd工具,配置一下之后,我觉得还蛮好用的。

    (找到git的安装目录,然后系统环境变量path添加一个“D:Program FilesGitcmd”,命令行就可以运行git命令了)

    进入目录
    cd e:
    cd cs

    返回根目录
    cd ../

    列出本目录下文件夹
    ls

    当前下创建文件夹
    mkdir

    删除文件夹
    rd xx

    删除文件

    del xx
    ————————以下为git命令——————————

    查看本机配置
    git config --list

    git基本配置
    http://magicalboy.com/git-configuration/
    配置用户信息
    $ git config --global user.name "xxx"
    $ git config --global user.email xx@xx.com

    创建本机key
    ssh-keygen -t rsa -C “xx@xx.com” (默认会在C/user/..下面创建一个.ssh的文件夹,内有一个公钥文件和一个私钥文件,公钥要自己复制放到服务器上)

    下载远程master代码
    git clone git@xxx.git

    拉取远端某分支代码
    git pull origin xname

    列出所有本地分支
    git branch

    列出远端分支

    git branch -r

    列出本地+远端分支
    git branch -a

    创建分支
    git branch xname

    切换分支
    git checkout xname

    创建并切换分支
    git checkout -b xname

    进入分支查看分支的改动
    git status

    GUI查看当前分支的修改
    gitk

    提交所有修改到本地
    git commit -a -m "注释内容,必须要有"
    (如果有新增加的文件,需要先add)

    提交修改到远程分支
    $ git push origin xname:xname

    删除已经合并过的本地分支
    git branch -d xname

    强制删除某个本地分支
    git branch -D xname

    删除远程分支
    git push origin :xname
    冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
    等同于
    $ git push origin --delete xname

    列出所有tag
    git tag

    打tag
    git tag -a tagName -m "注释"

    将tag提交到服务器
    git push origin v0.1.2(对应到小乌龟上就是push的时候,把Include tags勾上)

    将本地所有tag提交到服务器
    git push origin --tags

    三、git可视化工具

     git hash的乱码搞得我非常的恶心,装了一个小乌龟git,TortoiseGit,用了两天之后发现,贼好用,强烈推荐大家使用。

     举例:删除某个远程分支。

    还是按照原来那句删除远程分支的命令行的思路
    git没有删除远程分支的命令,可以用push一个空分支来实现删除的目的
    那 对应到小乌龟上 就是这样啦

     

    ---------------------------------------------------------------------------

     四、git小乌龟和git bash如何同时使用的问题

    因为在交叉使用中出现了问题,排查之后发现git小乌龟和git bash命令行工具,他们使用的密钥不是一个类型的。详细可以参考这个:http://zengrong.net/post/1722.htm

    也就是说,如果想同时使用这两个工具的话,需要分别为他们创建一对密钥。

    git bash:用上面列的命令可以生成公钥和私钥;

    TortoiseGit:需要使用它自己的puttygen工具生成一对密钥;详细可以参考这个:http://jingyan.baidu.com/article/63f236280f7e750209ab3d60.html

    如果参照教程还是有问题,需要在git bash中git config --list  查看一下"remote.origin.puttykeyfile"的值是否和刚才用puttygen生成的一致。

    五、git小乌龟在win8系统下git  clone load puttykey 不可用

    本来自认为自己已经完全掌握小乌龟的使用了,没想到今天的实习生来了之后,又出现一个新问题,就是他的win8系统,clone代码的时候, clone load puttykey 这个选项不可用。百度了一下之后,发现原来是git小乌龟没有找到ssh client,需要在git setting-network里指定一下ssh client的程序位置。

    如下:Settings > Network > SSH:SSH Client = C:Program Files (x86)TortoiseGitinTortoiseGitPLink.exe

    此问题参考:http://blog.snsgou.com/post-58.html

    六、.gitignore不生效问题

    Git 代码管理中,我们在没有添加 .gitignore 文件的前提下提交了代码之后再提交 .gitignore 文件,或者是中途添加某一文件类型到 .gitignore 文件中,需要通过以下命令行的方式,让 .gitignore 文件生效:
    git rm -r --cached .
    git add .
    git commit -m “Refresh adding .gitignore file.”
    如果是中途从 .gitignore 文件中移除某一文件类型,想要这个文件类型重新被 track,需要通过以下命令行的方式,让 .gitignore 文件生效:
    git add -f *.class
    git commit -m “Refresh removing .class from .gitignore file.”
    备注:注意你所处的分支,如果你在当前分支修改,切换到其他分支是不生效的,如果多人开发,注意合并修改!

    参考:http://www.ifeegoo.com/git-code-management-dot-gitignore-file-has-no-effect-solution.html 

    七、文件名大小写忽略

    默认忽略大小写,这里是个大坑,需要配置一下不忽略。

    查看当前配置:
    git config --get core.ignorecase

    配置修改为不忽略
    git config core.ignorecase false

    八、文件重命名/文件删除的提交

    git没有重命名,只有删除+新建。

    物理删除掉的文件,需要 git rm 从git记录中删除掉,否则不会被提交。

    其他参考:
    http://zengrong.net/post/1722.htm

    git flow:https://www.cnblogs.com/niwanglong385/articles/5645835.html  https://www.cnblogs.com/myqianlan/p/4195994.html

  • 相关阅读:
    航空公司客户价值分析
    电力窃漏电用户自动识别
    信息论基础
    Xgboost
    直线或曲线拟合
    matplotlib中绘图
    pandas中绘图
    matplotlib图形设置
    子图subplot
    时间序列:时间序列理论、时间序列建模
  • 原文地址:https://www.cnblogs.com/youryida/p/3986855.html
Copyright © 2020-2023  润新知