zoukankan      html  css  js  c++  java
  • git 常用命令

    git clone git@192.168.1.155:web.git   克隆创建好的 git

    git log  查看日志

    git add .  增加文件

    git status 查看状态
    git add -u  修改文件
    git commit -m '第一次提交'

    git revert HEAD  还原之前的提交

    git branch phoenix   创建分支 phoenix

    git checkout phoenix  切换分支

    git checkout -b phoenix  合起来这么写

    git checkout master  切换master分支
    git merge phoenix   合并分支
    git remote add origin https://github.com/xxxx/xxxx

    git push -u origin master

    以上两条为推送到远程 github

    git push --force

    强制推送

    git remote rm origin 
    git remote add origin  https://github.com/xxxx/xxxx

    .git  更换远程仓库

    git 牵出版本库 两个版本差异的 部分 defd8065e841dd465d4de261f985717b10c11cb0 上一个 72dccfa70d8b2c5a31420174a104cbfedbd82840 下一个

    git archive -o ../upload.zip 72dccfa70d8b2c5a31420174a104cbfedbd82840 $(git diff --name-only   defd8065e841dd465d4de261f985717b10c11cb0  72dccfa70d8b2c5a31420174a104cbfedbd82840)

    导出一个版本的一个目录或者一个文件到一个压缩包

     git archive -o ../sss.zip    001950  template/default   

     

    1) 远程仓库相关命令

    检出仓库:$ git clone git://github.com/jquery/jquery.git

    查看远程仓库:$ git remote -v

    添加远程仓库:$ git remote add [name] [url]

    删除远程仓库:$ git remote rm [name]

    拉取远程仓库:$ git pull [remoteName] [localBranchName]

    推送远程仓库:$ git push [remoteName] [localBranchName]

    2)分支(branch)操作相关命令

    查看本地分支:$ git branch

    查看远程分支:$ git branch -r

    创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

    切换分支:$ git checkout [name]

    创建新分支并立即切换到新分支:$ git checkout -b [name]

    删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

    合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

    创建远程分支(本地分支push到远程):$ git push origin [name]

    删除远程分支:$ git push origin :heads/[name]

    3)版本(tag)操作相关命令

    查看版本:$ git tag

    创建版本:$ git tag [name]

    删除版本:$ git tag -d [name]

    查看远程版本:$ git tag -r

    创建远程版本(本地版本push到远程):$ git push origin [name]

    删除远程版本:$ git push origin :refs/tags/[name]

    4) 子模块(submodule)相关操作命令

    添加子模块:$ git submodule add [url] [path]

    初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行

    更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下

    删除子模块:$ git rm --cached [path]

    5)忽略一些文件、文件夹不提交

    在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

    target

    bin

    *.db

    问题:.gitignore只适用于尚未添加到git库的文件。如果已经添加了,则需用git rm移除后再重新commit 

    删除文件

    直接在工作区删除,对暂存区和版本库没有任何影响。本地删除如果要反映在暂存区中应该用git rm命令,对不想删除的文件执行git checkout -- <file>,可以让文件在工作区重现。用git rm命令执行删除后,删除动作加入了暂存区,这时执行提交动作就从真正意义上执行了文件删除,不过文件只是在版本库的最新提交中被删除了,在历史提交中尚在。

    $ git add -u  将本地有改动(包括修改和删除)的文件标记到暂存区。

    恢复删除的文件

    $ git cat-file -p HEAD^:test.txt > test.txt 从前一提交中恢复test.txt文件

    $ git show HEAD^:test.txt > test.txt 效果相同

    $ git checkout HEAD^ -- test.txt 也可以

    $ git add -A 将工作区的所有改动及新增文件添加到暂存区

    然后执行commit操作,则文件被恢复

    移动文件(改名操作)

    改名操作相当于对旧文件执行删除,对新文件执行添加,git mv可以由git rm和git add两条命令取代

    $ git mv oldname newname 完成改名操作

    查看版本号

    $ git describe 查看当前版本号

    git log命令的--decorate参数可以在提交ID的旁边显示该提交关联的引用(里程碑或分支)

    选择性添加文件

    $ git add -i可以进入一个交互式界面操作

    文件忽略功能

    若把编译的目标文件及其他临时文件加入版本库中,浪费存储空间不说,甚至还会造成冲突。

    可以创建一个.gitignore文件,其作用范围是所处目录及其子目录,编辑好要忽略的文件,然后添加到版本库中。如果不希望添加到库里,也不希望.gitignore文件带来干扰,可以在忽略文件中忽略自己。

    被忽略以后,只有使用git status命令的--ignore参数,才会在状态显示中看到被忽略的文件。添加时git add -A和git add .都失效,只有在添加操作的命令行中明确写入文件名并提供-f参数才能真正添加。忽略只对未跟踪文件有效,对于已加入版本库的文件无效。

    文件.gitignore设置的文件忽略是共享式的。之所以被称为“共享式”,是因为.gitignore被添加到版本库后成为了版本库的一部分,当版本库共享给他人(克隆),或者把版本库推送(PUSH)到集中式的服务器或他人的版本库时,这个忽略文件就会在他人的工作区中同样生效。相对应的是独享式,有两种方式:

    第一种是针对具体版本库的,即在版本库.git目录下的一个文件.git/info/exclude来设置文件忽略;

    另一种是全局的,即通过Git的配置变量core.excludesfile指定的一个忽略文件,其设置的忽略对所有本地版本库均有效。

    如果文件忽略对于所有使用此版本库工作的人都有益,就通过在版本库相应目录下建一个.gitignore文件建立忽略;否则,如果是需要忽略工作区中创建的一个试验目录或试验性的文件,则使用本地忽略。

    忽略语法:

    忽略文件中的空行或以#开始的行会被忽略

    可以使用通配符,参见Linux手册:glob(7)

    如果名称的最前面是一个路径分割符(/),表明要忽略的文件在此目录下,而非子目录的文件

    如果名称的最后面是一个路径分割符(/),表明要忽略的是整个目录,同名文件不忽略,否则同名的文件和目录都忽略

    通过在名称的最前面添加一个感叹号(!),代表不忽略

    文件归档

    git archive命令,可以对任意提交对应的目录树建立归档。

    $ git archive -o latest.zip HEAD  基于最新提交建立归档文件latest.zip

    $ git archive -o partial.tar HEAD src doc  只把目录src和doc建立到归档partial.tar中

    $ git archive --format=tar --prefix=1.0/ v1.0 | gzip > foo-1.0.tar.gz  基于里程碑v1.0建立归档,并且为归档中的文件添加目录前缀1.0

    在建立归档时,如果使用树对象ID进行归档,则使用当前时间作为归档中文件的修改时间,而如果使用提交ID或里程碑等,则使用提交建立的时间作为归档中文件的修改时间。

    如果使用tar格式建立归档,并且使用提交ID或里程碑ID,还会把提交ID记录在归档文件的文件头中。记录在文件头中的提交ID可以通过git tar-commit-id命令获取。

    如果希望在建立归档时忽略某些文件或目录,可以通过为相应文件或目录建立export-ignore属性加以实现。

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/xiaoli3007/p/4091795.html
Copyright © 2011-2022 走看看