[GIT] 基本使用方法

来源:互联网 发布:小孩学编程 编辑:程序博客网 时间:2024/05/21 17:04

参考自:廖雪峰的官方网站

一. 重要概念

  • 工作区Workspace
  • 暂存区stage
  • 分支master/branch

二. 提交流程

  • git管理的是修改动作,不是文件。所以文件修改了,但是没有Git add修改动作, git commit不会提交文件修改。
  • 修改动作提交流程:工作区 –》 暂存区 –》 分支

三. 本地仓库管理步骤

练习,在/study/gitlearn/下创建仓库

1. 查看是否安装git

git

2. 创建仓库 — git init

cd XXX/study/gitlearngit init

/study/gitlearn 目录下自动生成.git目录, .git保存所有的操作,
使用如下命令查看隐藏目录.git。

ls -ah 

3. 工作区提交至暂存区 — git add

git add readme.txt
  • 新增或更新文件都使用git add提交
  • 提交多个文件至暂存区可
git add 1.txt,2.txt,3.txt

git add 1.txtgit add 2.txtgit add 3.txt

4. 暂存区提交至分支 — git commit -m “desc”

git commit -m "create readme.txt"

上面的四步已经完成了本地仓库更新。

5. 其余可用命令

  • git log 查看分支更新日志
  • git reflog 查看每次分支操作日志(可查到commitId, 以进行回退)
  • git diff file 查看某个文件修改内容(git add 前)
  • git checkout – file 撤销工作区修改,但不能撤销暂存区修改. “–”一定要加上,否则变成切换到另一个版本。
git checkout --readme.txt
  • git reset HEAD file 撤销暂存区修改, 但不能撤销工作区修改。所以需要配合git checkout – file使用。
    撤销暂存区对文件的修改
git reset HEAD readme.txt
  • git reset –hard XXX 回退分支修改
    回退分支到上一个版本(HEAD指针指向分支,上一个版本HEAD^, 上上个版本HEAD^^, 向上100版本可写成HEAD~100)
git reset --hard HEAD^

回退分支到某个commitId版本(commitId不需要全部,前面几个字符即可)

git reset --hard 351265 
  • 删除文件
    工作区删除文件
rm test.txt

分支删除文件

git rm test.txt

提交到分支

git commit -m "remove test.text"

6. git status不同阶段返回结果

  • Untracked files 没有被跟踪的文件,等待跟踪动作被添加到暂存区,需要git add;
  • Changes not staged for commit 文件编辑后,等待修改动作被添加到暂存区,需要git add;
  • Changes to be committed 修改动作已经保存在暂存区(stack), 等待提交到分支, 需要git commit -m “desc”;
  • nothing to commit, working directory clean 工作区没有更新,暂存区没有更新,工作区与分支一致。

四. 远程仓库

【这里分两种方式:本地已有关联远程,远程克隆到本地。注意,假设从零开始开发, 推荐的方式是先创建远程数据库, 然后从远程克隆。】
前提建立gitHub等远程仓库,这里以Github为例。库克隆

1. 本地已有仓库,将本地仓库关联远程仓库

  • 关联远程仓库
    进入本地learngit目录,运行。
git remote add origin https://github.com/DannyChen88/learngit.git
  • 第一次推送【master】分支内容
git push -u origin master

第一次推送master分支,加上-u参数,Git不但会把本地的master分支内容推送到远程的新matser分支,还会把本地的master分支和远程的master分支关联起来, 在以后的推送或拉取时简化命令。

  • 以后每次更新,提交本地仓库分支至远程仓库master分支
git push 

2. 将远程仓库克隆到本地仓库

进入test目录,运行

git clone https://github.com/DannyChen88/learngit.git

会在test目录下生成本地仓库leargit。

0 0
原创粉丝点击