GIT

作者: 天剑汇 | 来源:发表于2018-10-21 16:53 被阅读0次

    1、branch

    $:git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记

    git branch -r 列出远程分支

    git branch -a 列出本地分支和远程分支

    git branch newbranch(newname) 创建一个新的本地分支,需要注意,此处只是创建分支,不进行分支切换

    git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名

    git branch -d | -D branchname 删除branchname分支

    git branch -d -r branchname 删除远程branchname分支

    tag几乎有branch的全部命令,几乎同branch

    如:git tag 不带参数:列出本地已经存在的tag,并且在当前tag的前面加“*”号标记

    git show tag

    列出tag 的详细信息

    ssh://root@192.168.1.111:22/project/gitserver/831server/test.git

    git clone ssh://miracles@192.168.1.87/icw/home/miracles/jenkinsdev.git mytest.git

    %SystemRoot%\system32;%SystemRoot%;%JAVA_HOME%\bin;%M2_HOME%\bin;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ICW\bin;C:\Git\bin;C:\Git\mingw64\bin;C:\Git\mingw64\libexec\git-core

    C:\ICW\home\miracles\project\jenkins.git

    正式:ssh://miracles@192.168.0.87/icw/home/miracles/project/jenkinsdev.git

    测试:ssh://miracles@192.168.0.87/icw/home/miracles/831test.git

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

    2、checkout

    $:git checkout b1 //进入master分支

    git checkout -b fromb1 //以b1为源创建分支fromb1,并切换到fromb1

    git remote add origin ssh://git@dev.lemote.com/rt4ls.git //添加远程origin分支

    git remote -v //查看所有的远程仓库

    git remte origin set-url URL //修改远程分支命令

    git push origin master //推送master到origin分支

    git push origin test:test // 提交本地test分支作为远程的test分支

    git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

    git fetch origin master //从远程的origin的master主分支下载最新的版本到origin/master分支上 当前分支指向的FETCH_HEAD,

    git diff master origin/master //比较两个分支或看看本地分支和远程分支的差异

    git rebase origin/master // 改写当前分支的历史版本与origin/master保持一致 此方法可以维持树形结构但是不会merge操作,会完全覆盖上一版本

    git merge origin/master //fetch之后,可以合并到当前分支,树形结构不能维持

    git pull origin master //推送master到origin分支 fetch+merge

    需要在origin执行:git config receive.denyCurrentBranch ignore

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

    3、diff

    $:git diff //可以产看当前没有add 的内容修改

    git diff --cached //查看已经add 没有commit 的改动

    git diff master origin/master //比较两个分支或看看本地分支和远程分支的差异

    git log test.txt //查看某个文件的日志

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

    4、clone

    $:git clone xxx.git //clone 到当前路径

    git clone xxx.git "指定目录" //clone到指定目录

    git clone -b [new_branch_name] xxx.git //clone时创建新的分支替代默认Origin HEAD(master)

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

    5、文件操作:

    git add <file> //添加文件

    git rm <file> //删除文件

    git commit a.txt -m 'v1'

    * git revert HEAD 撤销前一次 commit

    * git revert HEAD^ 撤销前前一次 commit

    * git revert 5dfb61e9c5a074ace72998f384915c0b00ae6487(比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。

    git reset –hard fcd23f90c229a63ea457b65ab39d18d8a29824d1 //彻底回退到某个版本,本地的源码也会变为上一个版本的内容

    git log --pretty=oneline >> log.txt //可列出代码的所有改动历史,将他保存到一个文件中

    git reset --hard fcd23f90c229a63ea457b65ab39d18d8a29824d1 :远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset --hard才能看到push后的内容.reset是指将当前head的内容重置,不会留任何痕迹。

    git reset -–soft fcd23f90c229a63ea457b65ab39d18d8a29824d1 :回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

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

    解决push时 refusing to update checked out branch: refs/heads/master

    git config receive.denyCurrentBranch ignore

    解决add时 warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX.

    git config core.autocrlf false

    Git过滤文件和文夹

    第一步:添加".gitignore"文件

    往项目根目录添加一个文件".gitignore"。这文件和".git"文件夹同级。

    但是在windows下无法创建".gitignore"文件名,必须把文件名改成这样".gitignore.",

    在文件名最后加一个英文句号就可以了。

    第二步:设置过滤条件

    bin/ 过滤所有bin文件夹

    obj/ 过滤所有obj文件夹

    ValorNAV_deploy/ 过滤所有ValorNAV_deploy文件夹

    *.dll 过滤所有dll文件,这个最好不要使用dll,因为项目中像lib文件夹我们会放一些dll包。

    第三步:把".gitignore"文件提交并且push到服务器

    其它的协作成员可以通过pull获取这个文件,其它人的过滤规则保持一致了。

    1.如果新建一个空的Git仓库。直接拉取就可以了。

    2.如果是一个已经使用了Git仓库,如果需要应用规则,则需要通过命令把相应要过滤的目录

    的缓存删除。

    git rm --cached <文件名> 删除文件的缓存

    git rm --cached -r <目录名> 删除目录下的所有文件的缓存

    通过上面的命令把缓存删除后,commit后再push到服务器。

    其它的团队成员可以直接pull,过滤功能就能正常使用了。

    git update-index --assume-unchanged 的真正用法是这样的:

    你正在修改一个巨大的文件,你先对其 git update-index --assume-unchanged,这样 Git 暂时不会理睬你对文件做的修改;

    当你的工作告一段落决定可以提交的时候,重置改标识:git update-index --no-assume-unchanged,于是 Git 只需要做一次更新,这是完全可以接受的了;

    提交+推送。

    6.设置用户名

    $ git config --global user.name "wirelessqa"

    $ git config --global user.email wirelessqa.me@gmail.com

    这样就设置好信息了

    用git config --list可以查看配置列表

    查看当前git仓库的状态用 git-status / git status

    相关文章

      网友评论

          本文标题:GIT

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