git操作文档速查

简介: 读书整理git操作记录

个人整理的一个git操作命令速查:

1.git安装完成后,在命令行输入:

     git config --global user.name "Your Name"
     git config --global user.email "email@example.com”

2.创建版本库:


    mkdir    codedir  
    cd       codedir
    pwd 

3.初始化版本库


    git    init  
    git    add     readme.txt         //  git add file2.txt file3.txt     添加多个文件
    git    comment    -m    “write     logs”    // git commit -m "add 3 files”    提交两个文件

4.查看仓库状态

    
    git    status 

5.查看文件差异

    
    git    diff    readme.txt

6.查看历史记录


    git    log 
    git     log     --pretty=oneline

6.回退到上一个版本


    git reset --hard HEAD^      // 回退到上一个上一个版本
    git reset --hard 3628164    //  回退到指定版本    数字串是版本号的前几位

7.查看历史命令


    git    reflog     

8.查看工作区和版本库里面最新版本的区别

    git     diff     HEAD     --readme.txt 

9.丢弃工作区的修改

    
    git    checkout     —readme.txt    // git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

10.把暂存区的修改撤销掉(unstage),重新放回工作区

    git     reset     HEAD     readme.txt
    git     checkout    --readme.txt    //  丢弃工作区

11.确实要从版本库中删除该文件

    git     rm     test.txt
    git     commit     -m     "remove test.txt"
    git     checkout     --test.txt        // 把误删的文件恢复到最新版本

12.远程仓库

    
    ssh-keygen -t rsa -C "youremail@example.com”      //  创建SSH Key

13.添加远程仓库


    git     remote     add     origin     git@github.com:michaelliao/learngit.git        //    远程库的名字就是origin

14.把本地库的所有内容推送到远程库上


    git     push     -u     origin     master        //    first   push  
    git     push     origin     master                //   after   first   

15.远程库克隆


    git     clone     git@github.com:michaelliao/gitskills.git

16.创建dev分支,然后切换到dev分支


    git     checkout     -b     dev

17.创建dev分支,然后切换到dev分支

    git     branch     dev
    git     checkout     dev

18.查看当前分支(本地)

    
    git     branch           //查看本地分枝
    git     branch   -r     // 查看远程分支

19.把dev分支的工作成果合并到master分支上

    
    git     checkout     master    //  切换回master分支
    git     merge     dev      // git     merge命令用于合并指定分支到当前分支

20.删除dev分支

    
    git     branch     -d     dev

21.当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成

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

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

    
    git     merge     --no-ff     -m     "merge with no-ff”     dev
    git     log     --graph     --pretty=oneline     --abbrev-commit   // 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

23.Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

    git     stash
    git     stash     list    //查看
    (1)   git     stash     pop  //  恢复的同时把stash内容也删了
    (2)   git stash apply   //  恢复
           git stash drop   //   删除

24.然后恢复指定的stash,用命令

    
    git     stash     apply     stash@{0}

25.强行删除分支

    git     branch     -D     feature-vulcan

26.要查看远程库的信息,

    
     git     remote
     git     remote     -v

27.推送分支

    
    git     push     origin     master    //推送主分支
    git     push     origin     dev        //推送开发分支

    注意:
        master分支是主分支,因此要时刻与远程同步;
        dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
                bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
                feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

28.抓取分支

   
多人协作的工作模式通常是这样:
  1. 首先,可以试图用
    git push origin branch-name

推送自己的修改;

  1. 如果推送失败,则因为远程分支比你的本地更新,需要先用
    git pull

试图合并;

  1. 如果合并有冲突,则解决冲突,并在本地提交;
  2. 没有冲突或者解决掉冲突后,再用
    git push origin branch-name

    推送就能成功!

    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令

    git branch --set-upstream branch-name origin/branch-name。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

  • 查看远程库信息,使用

    git remote -v;

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;
  • 从本地推送分支,使用
    git push origin branch-name,

    如果推送失败,先用

    git pull

    抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用
    git checkout -b branch-name origin/branch-nama

    本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用
    git branch --set-upstream branch-name origin/branch-name
  • 从远程抓取分支,使用
    git pull

    如果有冲突,要先处理冲突。

29.打一个新标签

    git     tag     v1.0

30.查看所有标签


    git     tag

31.指定版本号打标签

    
    git     tag     v0.9     6224937

32.查看标签信息

    git     show     v0.9

33.创建带有说明的标签,用-a指定标签名,-m指定说明文字

    git     tag     -a     v0.1     -m     "version 0.1 released”     3628164

34.可以通过-s用私钥签名一个标签

    
    git     tag     -s     v0.2     -m     "signed version 0.2 released”     fec145a

35.删除标签

    git     tag     -d     v0.1

36.推送某个标签到远程

    git     push     origin     v1.0

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

    git     push     origin     —tags

38.删除远程标签就麻烦一点,先从本地删除,然后,从远程删除

    git     tag     -d     v0.9
    git     push     origin     :refs/tags/v0.9

39.让Git显示颜色,会让命令输出看起来更醒目

    git     config     --global     color.ui     true

40.确实想添加该文件,可以用-f强制添加到Git


    git     add     -f     App.class
    git     check-ignore     -v     App.class    // 查看gitignore
    忽略某些文件时,需要编写.gitignore;
    .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

41.设置命令别名

    
    git     config     --global     alias.st     status
    git     config     --global     alias.unstage     'reset HEAD’
    git     config     --global     alias.last     'log -1’
    git     config     --global     alias.lg     "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit”

42.每个仓库的Git配置文件都放在.git/config文件中

    
    cat     .git/config       # 别名就在[alias]后面,要删除别名,直接把对应的行删掉即可

43.当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

    
    cat      .gitconfig

44.搭建Git服务器

    (1)    sudo     apt-get     install     git      #安装git
    (2)    sudo     adduser     git                    #创建一个git用户,用来运行git服务
    (3)    sudo     git     init     --bare     sample.git          #先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令
    (4)    sudo     chown     -R     git:git     sample.git     #改owner
    (5)    禁用shell登录:
            出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

    git:x:1001:1001:,,,:/home/git:/bin/bash
            改为:

    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
            这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
    (6)    克隆远程仓库
            
            git clone git@server:/srv/sample.git
相关文章
|
2月前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
71 1
记IDEA Git版本回退并push到远程操作
|
2月前
|
开发工具 git 开发者
|
2月前
|
开发工具 git
web后端-IDEA的Git操作
web后端-IDEA的Git操作
|
2月前
|
Linux 网络安全 开发工具
Git拉取代码的完整示例操作
Git拉取代码的完整示例操作
132 0
|
2月前
|
消息中间件 缓存 数据库
惊艳!Alibaba最新发布「10亿级并发系统设计文档」Git狂揽8000星
前言 每逢阿里开展大型活动,比如、双11、双12、等等,使用淘宝的用户就会瞬间飙升,为何淘宝APP从来没有崩盘?淘宝的亿级并发系统架构又是如何设计的呢?又是如何承受住亿级流量带来的并发量呢? 这份阿里最新发布的10亿并发系统设计手册希望对有困惑的小伙伴带来答案,对想在技术上得到突破的小伙伴带来福利~ 由六个部分,基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇共计328页 总览目录 由于文章幅篇的限制小编就用截图的方式给大家展示需要获取完整版的小伙伴点击此处​ 基础篇 高并发代表着大流量,高并发系统设计的魅力就在于我们能够凭借自己的聪明才智设计巧妙的
95 0
|
16天前
|
Ubuntu 开发工具 git
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
19 0
|
1月前
|
开发工具 git
idea的git reset current branch to here操作详解
idea的git reset current branch to here操作详解
38 1
|
2月前
|
开发工具 git 开发者
【专栏】探讨了 Git 中的 `git rebase` 操作,它用于重新应用提交到另一分支,改变历史顺序
【4月更文挑战第29天】本文探讨了 Git 中的 `git rebase` 操作,它用于重新应用提交到另一分支,改变历史顺序。与 `git merge` 不同,rebase 重写提交历史,提供简洁线性的历史记录。文章介绍了 rebase 的基本操作、应用场景,如整理提交历史、解决冲突和整合分支,并强调了使用注意事项,如避免在公共分支上操作。尽管 rebase 可以带来整洁的历史和冲突解决便利,但其潜在的风险和可能导致的历史混乱需谨慎对待。理解并恰当使用 `git rebase` 可以提升开发效率和代码质量。
|
2月前
|
开发工具 git 开发者
掌握常见Git操作:技巧与实践
掌握常见Git操作:技巧与实践