git 基本命令

249 阅读1分钟

git 一些比较常用的命令

  1. Git简介

// 1. 创建版本库

$ cd 跳转

$ cd:e // 切换盘符

$ cd .. // 回到文件上一层(注: cd与..中间有个空格)

$ cd ~ // 回到当前目录的主目录

$ mkdir Git // 创建文件夹Git

$ touch fileName // 新建文件

$ vi fileName // 编辑文件

$ press i button // 开始进入编辑状态

$ press the Esc button // 退出vim编辑区

$ :wq // 退出编辑状态, 回到命令窗口

$ mkdir learngit // 创建文件夹learngit 

$ pwd // 显示当前路径/e/Git/learngit

$ git init // 将当前目录变成一个Git可以管理的仓库

$ touch+文件名 // 直接新建一个文件

$ git add readme.txt // 将文件添加到Git仓库(把文件修改添加到暂存区)

$ git commit -m "wrote a readme.txt." // 将文件提交到仓库(把暂存区的所有内容提交到当前分支)

$ git add file1.txt // 添加file1.txt文件

$ git add file2.txt file3.txt // 同时添加file2.txt和file3.txt两个文件

$ git commit -m "add 3 files." // 一次性提交3个文件

  1. 时光穿梭机:

// 2.1 版本回退

$ git status // 查看当前仓库状态(仓库下的工作区文件是否被修改过)

$ git diff readme.txt // 查看工作区的readme.txt与缓存区的readme.txt的区别

$ git log // 查看最近到最远的提交记录(详情: commit id + Author + Date + comment)

$ git log --pretty=oneline // 查看最近到最远的提交记录(简写:commit id + comment)

$ git reset --hard HEAD^ // 回到上一个版本(HEAD: 当前版本,HEAD^: 上一个版本,HEAD~100: 往上100个版本)

$ git reset --hard 1234567 // 回到指定版本号commit id(此处:commit id 假设为1234567******,Git会根据commit id的前几位自动寻找对应的版本)

$ cat readme.txt // 查看readme.txt的内容

$ git reflog // 查看每一次命令记录历史,确保能回到任意版本  

// 2.2 工作区与暂存区

$ git diff readme.txt // 比较工作区(working directory)和暂存区(stage/index)的区别

$ git diff --cached // 比较暂存区(stage/index)和分支(master)的区别

// 2.3 管理修改(详见1. 创建版本库中的命令)

// 2.4 撤销修改

$ git checkout -- readme.txt // 撤销修改:1. 文件在添加到缓存区前修改,则回退到原工作区状态;2. 文件在添加到缓存区后修改,则回退到原缓存区状态。也即是将readme.txt撤回到最近一次git add或git commit状态(注:--表示在当前分支,如果没有,则切换到另一个分支)

$ cat readme.txt // 查看文件内容

$ git reset HEAD readme.txt // 1. 回退到最新版本;2. 将暂存区的修改回退到工作区

// 2.5 删除文件

$ rm test.txt // 删除工作区文件(类似于手动删除)

$ git status // 查看当前工作区与缓存区状态

$ git rm test.txt // 情况1:确认删除

$ git commit -m "remove test.txt" // 情况1:确认删除后,提交到版本库

$ git checkout -- readme.txt // 情况2:误删,需要回退(即:用版本库里的版本替换工作区的版本)

// 3. 远程仓库

// 3.1 添加远程库

git remote add origin git@server-name:path/repo-name.git // 关联一个远程仓库,如:$ git remote add origin git@github.com:ChrisLeejing/learngit.git

git push -u origin master // 第一次推送master分支的所有内容