zoukankan      html  css  js  c++  java
  • Git常用操作

    Git命令

    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 checkout -b dev origin/dev 迁出远程分支

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

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

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

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

    列出分支图
    git config –global alias.lg “log –graph –all –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –date=relative”

    git lg (设置了别名后,就可以使用别名进行查看)

    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]

    拉取tag版本:git checkout -b branch_name tag_name

    推送tag版本:git push —tags

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

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

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

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

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

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

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

    代码提交

    代码提交一般有五个步骤:

    1.查看目前代码的修改状态

    2.查看代码修改内容

    3.暂存需要提交的文件

    4.提交已暂存的文件

    5.同步到服务器

    git config –global push.default matching

    git config –global push.default simple

    //建立关系

    git branch –set-upstream my_branch origin/my_branch

    1. 查看目前代码的修改状态

    提交代码之前,首先应该检查目前所做的修改,运行git status命令

    a) 已暂存 (changes to be committed)

    new file //表示新建文件

    modified //表示修改文件

    deleted //表示删除文件

    b) 已修改 (changed but not updated)

    modified //表示修改文件

    deleted //表示删除文件

    另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout –

    c) 未跟踪 (untracked files)

    2. 查看代码修改的内容

    git diff 

    比较某文件与最近提交节点的差异。

    注意:如果该文件已暂存,那么应该使用git diff –cached

    git diff 

    比较某文件在提交节点a,节点b的差异。

    技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)

    3. 暂存需要提交的文件

    如果是新建的文件

    则git add 

    如果是修改的文件

    则git add 

    如果是删除的文件

    则 git rm 

    4. 提交已暂存的文件

    git commit

    注意注释填写规范。

    git commit –amend

    修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。

    5. 同步到服务器

    同步到服务器前先需要将服务器代码同步到本地

    命令: git pull

    如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
    命令:git checkout – <有冲突的文件路径>

    同步到服务器

    命令: git push origin <本地分支名>

    如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。

    GitFlow流程

     

    GitPullRequest

    两种方式

    1.一种通过网页发起

    2.通过hub发起

    $ git checkout -b new-feature

    // make changes

    // ...

    $ git add . && git commit -m "change log"

    $ git push origin new-feature

    // repeat push code before pr

    $ hub pull-request -m "pr title"

    // then metion @0day to review

    // when merge done

    $ git checkout master

    $ git pull origin master —rebase

    // remove local useless branch

    $git branch -d new-feature

    重新设置远程URL

    cd existing-project

    git remote set-url origin http://weikeyan@stash.qingclass.org/scm/ios/qingschool.git

    git push -u origin master

    rebase 和 merge 的区别

    #gitbook

    https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8

  • 相关阅读:
    1063. Set Similarity
    A1047. Student List for Course
    A1039. Course List for Student
    最大公约数、素数、分数运算、超长整数计算总结
    A1024. Palindromic Number
    A1023. Have Fun with Numbers
    A1059. Prime Factors
    A1096. Consecutive Factors
    A1078. Hashing
    A1015. Reversible Primes
  • 原文地址:https://www.cnblogs.com/keyan1102/p/5192307.html
Copyright © 2011-2022 走看看