Git 第二篇:基本操作

Git的基本操作主要是创建本地库、增加内容,提交修改 ,并把修改同步到远程库,常用的命令是git clone、git checkout、git commit、git push、git pull等。

一,创建本地库

本地库(Repository)是一个目录,这个目录里面的所有文件都可以被Git管理起来,Git跟踪目录中每个文件的修改和删除,以便在将来某个时刻可以“还原”。

1,创建新的本地代码库

创建一个版本库其实就是创建一个空目录,并使Git管理该目录。

# 在当前目录新建一个Git代码库
$ git init

# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]

Git 使用 git init 命令来初始化一个版本库,Git 的很多命令都需要在版本库中运行,所以 git init 是使用 Git 的第一个命令。

2,复制远程库

如果要从远程库中下载代码到本地,可以直接克隆一个远程库:

git clone [url]

使用 git clone 从现有 Git 仓库中拷贝代码到本地库。

在执行完成 git init / clone 命令后,版本库中会自动生成一个 .git 目录,该目录包含了资源的所有元数据,其他的目录保持不变。

在本地库创建完成之后,就可以使用git 命令来对本地库进行修改和管理分支。

二,增加、删除或移动文件

在git中可以增加新文件,删除旧文件或者把文件移动到其他folder中。

1,增加新文件

git add 命令用于增加Git追踪的内容,把内容加入到本地代码库的索引当中

 git add file1 file2

应该建立一个清晰的概念就是,git add 只是刷新了 Git 的跟踪信息,file1 和 file2 这两个文件中的内容并没有提交到 Git 的内容跟踪范畴之内。

添加所有未跟踪文件用 

git add -A

添加所有未跟踪文件并且提交用 

git commit -a

2,文件的删除

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

# 删除工作区文件,并且将这次删除放入暂存区
git rm [file1] [file2] ...

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

# 停止追踪指定文件,但该文件会保留在工作区
git rm --cached [file]

3,文件的移动

git mv 命令用于移动或重命名一个文件、目录、软连接。

# 改名文件,并且将这个改名放入暂存区
git mv [file-original] [file-renamed]

三,提交修改

提交内容到本地代码库使用 git commit命令,使用 -m 选项以在命令行中为该次提交添加注释:

git add file1 file2
git commit -m 'comments'

如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步,命令格式如下:

git commit -a

或者使用  -am 选项,跳过git add,并为这一次提交添加注释:

git commit -am 'comments'

四,远程同步

远程同步主要分为两部分:把修改推送到远程库,使用push命令;把远程库中的代码同步到本地库,使用fetch。pull命令是push命令和fetch命令功能的合并。

# 下载远程仓库的所有变动
$ git fetch [remote]

# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]

# 上传本地指定分支到远程仓库
$ git push [remote] [branch]

# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force

# 推送所有分支到远程仓库
$ git push [remote] --all

五,Git分支管理

 使用分支意味着你可以从开发主线上分离开来,在不影响主线的同时继续工作。

1,创建分支命令

新建一个分支,但依然停留在当前分支

git branch (branchname)

2,切换分支命令

切换到指定分支,并更新工作区

git checkout (branchname)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

3,删除分支命令

git branch -d (branchname)

4,合并分支命令

你可以使用以下命令把指定的分支合并到当前分支中去:

# 合并指定分支到当前分支
git merge [branch]

合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。

step1:切换到主分支,当前分支是主分支

git checkout master

step2,把指定的分支合并到当前分支(主分支)

git merge change_branch

当把辅分支合并到 "master" 分支时,如果出现合并冲突,接下来就需要手动去修改它。

step3,提交合并

在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决,并使用git commit来提交分支的合并。

git add solve_conflict
git commit

六,查看Git

用户可以查看git的状态和提交的历史记录

1,查看git的状态

git status 以查看在你上次提交之后是否有修改,使用-s参数,以获得简短的结果输出,如果没加该参数,Git会输出详细的内容:

git status -s

执行 git diff 来查看执行 git status 的结果的详细信息。git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。

git diff 有两个主要的应用场景。

  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat

2,查看提交的历史

使用git log 命令查看提交的历史

# 显示当前分支的版本历史
git log
# 显示commit历史,以及每次commit发生变更的文件
git log --stat
# 搜索提交历史,根据关键词
git log -S [keyword]

参考文档:

GIT 常用命令

原文地址:https://www.cnblogs.com/ljhdo/p/4811096.html