Skip to content

git 常用命令使用

常用Git命令清单

这里就不多说 git 的安装,和 git 的配置了,这些网上教程一大把。

这篇文章主要讲的是从零开始把本地项目推到远程仓库上

案例

初始化

首先在本地新建一个文件夹 git-demo,在项目根目录执行

bash
# 把该文件夹初始化为一个仓库
git init

git初始化

然后在该项目里进行各种开发即可。

这里比如新建了一个文件 a.js

javascript
// a.js
console.log('a.js')
console.log('a 提交')

提交

首先在这提一下 git 几个概念:

  • workspace :工作区,即你的项目
  • Index:暂存区,你可以比喻为一个内存
  • repository:仓库区或本地仓库
  • remote:远程仓库

它们的关系👇

git概念

将所有文件改变文件提交到暂存区

bash
# 添加当前目录的所有文件到暂存区
git add .

注意:执行这条命令,控制台是没有任何反馈的。

扩展

当然,你不想将所有文件到提交到暂存区,可以使用一下命令👇

bash
# 添加指定文件到暂存区
git add [file1] [file2] ...

# 添加指定目录到暂存区,包括子目录
git add [dir]

根据关系图清楚知道,下一步就是将 暂存区的内容 提交到 本地仓库

bash
# 提交暂存区到仓库区
git commit -m [message]

git

扩展

bash
# 提交暂存区的指定文件到仓库区
git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化,直接到仓库区
git commit -a

# 提交时显示所有diff信息
git commit -v

同步/推送

修改的文件也全部提交到本地仓库了,接下来就是如何将本地仓库推送到远程仓库上。

WARNING

假如你现在直接使用 git push ,你会收到一条错误。因为 git 不知道你要把本地仓库推送到哪个远程仓库上,它不知道远程仓库的地址。

因此,我们先在 git 代码托管平台创建一个远程仓库。比如 giteegithub

这里我们使用 gitee ,这样怎么新建也不多讲了,完全的傻瓜式。

然后在打开新建的仓库,复制它的远程链接。如 👇

git

bash
# 增加一个新的远程仓库,并命名。你可以理解为本地仓库与远程仓库连接
git remote add [shortname] [url]

git

扩展

bash
# 显示所有远程仓库
git remote -v

# 显示某个远程仓库的信息
git remote show [remote]

然后将本地仓库推送到远程仓库

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

git

扩展

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

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

因为项目大多数情况下不是一个人进行开发的,因此别人提交的文件,我们要在修改文件前,把它从远程仓库同步到本地仓库中。

bash
# 取回远程仓库的变化,并与本地分支合并,不指定分支则默认当前分支
$ git pull [remote] [branch]

git

冲突问题

也因为经常一个项目是由多人维护的,因此难免会遇到冲突。

造成冲突的原因是什么呢

比如 有 a,b 两个人同时维护一个项目,项目中有一个 demo.js 文件,a 人员修改后推送到 远程仓库中。b 人员也修改了 demo.js ,但他在修改前没有同步远程仓库最新文件,导致修改 demo.js 是 a人员修改前的文件;然后 b人员 修改后推送就会报错,提示文件冲突。

git

根据提示它让我们先执行 git pull , 执行结果如下👇

git

提示 b.js 合并冲突,自动合并失败。

然后我们打开 b.js ,可以看到 git 将冲突的部分显示出来,然后我们选择需要保留的部分,手动修改后重新提交推到远程即可

git

分支

这里只是列举部分常用的命令。更多的 git 命令,请打开文章头部链接。

bash
# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 列出所有本地分支和远程分支
git branch -a

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支,等价于git branch [branch] + git checkout [branch]
git checkout -b [branch]

# 重置暂存区与工作区,与上一次commit保持一致
git reset --hard

# 查看分支历史提交记录
git reflog show -date=iso [branch-name]

Released under the MIT License.