zoukankan      html  css  js  c++  java
  • Git基础命令(一)

    1、Git 命令列表

    判断git是否安装成功:输入git(所有git命令以git开头);

    2、Git 具体命令

    第一步:新建一个文件夹

    mkdir demo

    cd demo

    touch demo.md

    注意:在任何git操作之前,都需要切换到Git仓库目录,也就是切换到项目的文件夹目录下。

    (0)一般想要提交到git上,首先需要配置自己的用户名和邮箱,这样才比较容易知道代码提交到哪里了。

    设置自己的用户名和邮箱git config --global user.name ""

                git config --global user.email ""

    这是全局配置,如果是想把文件提交到特定的邮箱,将global移除就可以了。

    (1)输入git status:查看git仓库状态

    MeWifi:demo cjy$ git status
    fatal: Not a git repository (or any of the parent directories): .git
    

    意思是当前目录还不是一个Git仓库。

    这时候就用到第一个git命令:

    (2)git init 代表初始化git仓库

    MeWifi:demo cjy$ git init
    Initialized empty Git repository in /工作/workspace/demo/.git/
    

    可以看到初始化成了,至此demo就是一个git仓库了。

    (3)这时候,输入git status查看状态

    MeWifi:demo cjy$ git status
    On branch master
    
    Initial commit
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    
    	demo.md
    
    nothing added to commit but untracked files present (use "git add" to track)
    

    默认是在master分支,这里主要提示demo.md这个文件还没有提交到git仓库,而且提示你可以用“git add"命令去提交文件。

    (4)git add 提交文件

    MeWifi:demo cjy$ git add demo.md
    MeWifi:demo cjy$ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
    	new file:   demo.md
    

    这时提示Changes to be committed,意思是demo.md文件等待被提交,你可以用git rm --cached去移除这个缓存。

    (5)git commit -m "commit message" 真正提交文件

    MeWifi:demo cjy$ git commit -m "提交demo.md文件"
    [master (root-commit) 96bbcd5] 提交demo.md文件
     Committer: cjy <cjy@MeWifi.local>
    Your name and email address were configured automatically based
    on your username and hostname. Please check that they are accurate.
    You can suppress this message by setting them explicitly:
    
        git config --global user.name "Your Name"
        git config --global user.email you@example.com
    
    After doing this, you may fix the identity used for this commit with:
    
        git commit --amend --reset-author
    
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 demo.md
    

    -m代表提交的信息,执行以上命令就代表我们进行了真正的提交。

    第一次使用git命令提交,由于我们没有设置自己的用户名和邮箱,所以默认使用的是本地的。

    (6)查看日志:git log

    MeWifi:demo cjy$ git log
    commit 96bbcd51ef1f2010db11de53ba106e680e37c69a (HEAD -> master)
    Author: cjy <cjy@MeWifi.local>
    Date:   Wed Jul 12 09:24:53 2017 +0800
    
        提交demo.md文件 

    (7)查看分支情况:git branch

    分支在团队协作的时候很重要。假设A做模块a,B做模块b,这是创建各自的分支a,b,那么两个人的工作就独立开了,互不干扰,最后做完后再统一把分支合并起来。

    MeWifi:demo cjy$ git branch
    * master
    

    当前只有一个默认的分支master。如果想要创建新的分支,该怎么做呢?很简单,执行git branch a就新建了一个名为a的分支。它的内容跟master一模一样。

    再次输入git branch查看分支

    MeWifi:demo cjy$ git branch a
    MeWifi:demo cjy$ git branch 
      a
    * master
    

    这时候就可以看见多了个a。细心的同学肯定发现了,master前面有个*号。这是什么意思呢?它代表当前所在的分支是master。

    (8)切换到分支:git checkout a

    MeWifi:demo cjy$ git checkout a
    Switched to branch 'a'
    MeWifi:demo cjy$ git branch
    * a
      master
    

    这是a为当前的分支,说明我们已经切换到a分支了。

    那有人就说了,要新建再切换多麻烦,有没有更简便的方法呢。聪明:

    (9)git checkout -b b:创建分支并切换到当前创建的分支上

    MeWifi:demo cjy$ git checkout -b b
    Switched to a new branch 'b'
    

    Switched to a new branch 'b',这句话的意思是切换到新创建的分支b。

    (10)合并分支:git merge

    这个命名需要做2步:第一步,切换到master分支,如果已经是了,可以忽略;第二步将分支a的代码合并到主分支,不出意外的话,分支代码很顺利的并到master分支。

    (11)删除分支:git branch -d a

    如果a分支的代码没有合并到master中,这时去删除a,会提示有代码未合并,删除失败。那么有没有可以直接强制删除它的方法呢?答案是有的。

    MeWifi:demo cjy$ git branch -d a
    Deleted branch a (was 96bbcd5).

    (12)强制删除分支:git branch  -D a

    //切换到主分支master
    MeWifi:demo cjy$ git checkout master
    Switched to branch 'master'
    //再删除分支
    MeWifi:demo cjy$ git branch -D b
    Deleted branch b (was 96bbcd5).
    MeWifi:demo cjy$ 

    (13)一般代码都会有版本的标识,git也不例外。创建标签的命令为:git tag v1.0

    MeWifi:demo cjy$ git tag v1.0
    MeWifi:demo cjy$ git tag
    v1.0
  • 相关阅读:
    Datagrip导入导出为一个sql文件详细说明 (mysql)
    Linux/Unix/Mac OS下的远程访问和文件共享方式
    批量杀掉多个pid文件中记录的pid进程, 并集成到shell脚本中
    把tomcat服务器配置为windows服务的方法
    idea导入java项目
    linux-umount挂载点无法卸载:device is busy(解决)
    elasticsearch插件大全
    分布式搜索elasticsearch配置文件详解
    centos fastdfs 多服务器 多硬盘 多组 配置详解
    redis 配置 linux
  • 原文地址:https://www.cnblogs.com/hacjy/p/7153981.html
Copyright © 2011-2022 走看看