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

    一.如何学习git指令

    1.查看帮助:git help
    2.查看指定命令:git help clone
    3.搜索关键字:/chone
    4.退出帮助文档:输入Q

    二.常见命令

    1.初始化git本地仓库:先进入目标文件夹然后输入git init
    2.创建文件:touch car.h
    3.查看文件状态:git status
    查看最新改动:git diff 文件名
    4.添加到git暂缓区:git add Car.h
    5.添加多个文件到暂缓区:git add .
    6.提交代码:gitcommit -m “说明”
    7.第一次需要设置账户的用户名和email

    git config --global user.name "xxx" 
    git config --global user.email xxx.me@gmail.com 

    红色文件:文件没有被纳入到git管理中
    绿色文件:文件加入到了‘暂存区’

    三.配置账号信息(一般来讲只需配置一次全局的账号即可)

    配置局部信息

    git config user.name "xxx" 
    git config user.email xxx.me@gmail.com

    配置全局信息
    git config --global user.name "xxx"
    git config --global user.email xxx.me@gmail.com

    1.如果没有配置过账号信息,那么git会有一个默的账号信息
    2.如果配置的是全局信息那么
    查看账户信息

    cat ~/.gitconfig

    修改全局信息

    gedit ~/.gitconfig

    四.查看日志

    1.git log
    2.一次显示一行

     git log --pretty=oneline

    五:回退版本

    如果文件已经被commit 可以通过git reset来回退版本
    1.在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
    现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:

    $ git reset --hard HEAD^

    2.回到某个版本:

    $ git reset --hard 3628164

    3.检出当前分支的最高版本:

    git checkout Car.h

    4. 用来记录你的每一次命令,可以在这里看到程序

    git reflog

    5.删除文件

    git rm -Car.h
    git commit -m “说明”

    还原

     git checkout -- Car.h

    六.github

    1.注册github账号
    2.创建SSH key 在用户主目录下,看看有没有.ssh目录
    id_rsa 私钥
    id_rsa.pub 公钥
    3.登陆github 打开setting,SSH key界面,点Add SSH key,填上任意Title,在Key文本框里粘贴id_rsa.pub

    4.添加远程库,登陆github创建一个新的仓库,然后根据github的提示,在本地的仓库下运行命令
    把本地仓库上传到github仓库 

    git remote add origin git@github.com:liushaocong/learngit.git

    在本地仓库的内容推送到远程 

    git push origin master

    从远程库克隆 

    git clone git@github.com:liushaocong/learngit.git

    5.创建一个分支

    git checkout -b dev

    #-b表示创建并切换相当于一下两条命令

    创建一个dev分支$git branch dev  

    切换到dev分支$git checkout dev 

     列出所有分支 当前分支前面加* 

    git branch
    * dev
    master

    在dev分支上修改文件

    切换到master分支

    git checkout master

    合并指定分支到当前分支

    git merge dev

    删除dev分支

    git branch -d dev 

    两个版本文件冲突,首先解决冲突再提交,合并完成

    git log --graph --pretty=oneline --abbrev-commit 分支合并图

    合并分支时,如果可能,Git会用Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。
    如果强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
    首先,仍然创建并切换dev分支:

    $ git checkout -b dev
    Switched to a new branch 'dev'

    修改readme.txt文件,并提交一个新的commit:

    $ git add readme.txt 
    $ git commit -m "add merge"
    [dev 6224937] add merge
    1 file changed, 1 insertion(+)

    现在,我们切换回master:

    $ git checkout master
    Switched to branch 'master'

    准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

    $ git merge --no-ff -m "merge with no-ff" dev
    Merge made by the 'recursive' strategy.
    readme.txt | 1 +
    1 file changed, 1 insertion(+)

    因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

    合并后,我们用git log看看分支历史:

    $ git log --graph --pretty=oneline --abbrev-commit
    * 7825a50 merge with no-ff
    |
    | * 6224937 add merge
    |/
    * 59bc1cb conflict fixed
    ...

    可以看到,不使用Fast forward模式,merge后就像这样:

     七.创建标签

    首先,切换到需要打标签的分支上

    然后敲命令git tag <name>就可以打一个新标签:
    git tag v0.1

    $ git checkout dev
    Switched to branch 'dev'
    $ git branch 
    * dev
      master
    $ git tag v0.1

    可以敲命令git tag 查看所有的标签

    忘了打标签可以找到历史提交的commit id,然后打上

    &git log --pretty=oneline --abbrev-commit 
    3d919ae add merge
    902eb16 conflict fixed
    d347d7d & simple
    c209efc and simple
    e0f50b8 branch test
    b1f57f6 smile
    $ git tag v0.2 c209ef
    

      

    用git show <tagname>查看标签信息

    如果标签打错了,也可以删除:

    $ git tag -d v0.1
    Deleted tag 'v0.1' (was 3d919ae)
    

    创建的标签都只存储到本地,不会自动推送到远程,如果要推送某个标签到远程,使用命令git push origin <tagname>

    git push origin v0.1
    

    或者一次性推送全部尚未推送到远程的本地标签

    git push origin --tags
    

    如果标签已经推送到远程,要删除远程标签,先从本地删除

    git tag -d v0.1
    

    然后,从远程删除。删除命令也是push,但是格式如下:

    git push origin :/refs/tags/v0.1
    

      

  • 相关阅读:
    Linux 下的类似Windows下Everything的搜索工具
    windows和linux环境下制作U盘启动盘
    程序调试手段之gdb, vxworks shell
    LeetCode 1021. Remove Outermost Parentheses (删除最外层的括号)
    LeetCode 1047. Remove All Adjacent Duplicates In String (删除字符串中的所有相邻重复项)
    LeetCode 844. Backspace String Compare (比较含退格的字符串)
    LeetCode 860. Lemonade Change (柠檬水找零)
    LeetCode 1221. Split a String in Balanced Strings (分割平衡字符串)
    LeetCode 1046. Last Stone Weight (最后一块石头的重量 )
    LeetCode 746. Min Cost Climbing Stairs (使用最小花费爬楼梯)
  • 原文地址:https://www.cnblogs.com/liushaocong/p/7044873.html
Copyright © 2011-2022 走看看