返回介绍

基础操作

发布于 2024-12-09 12:49:34 字数 3520 浏览 0 评论 0 收藏 0

初始化仓库

如果打算使用 Git 来对现有的项目进行管理,需要在项目目录中执行如下命令:

git init

该命令将创建一个名为.git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。这一命令仅仅是做了一个初始化的操作,项目中的文件并没有被跟踪。

git add .

该命令来实现对所有文件的跟踪,git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。git add 命令是一个多功能命令,可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。

git commit -m "提交描述"

该命令实现对文件修改的提交

git clone [url]

克隆 git 仓库

git clone https://github.com/libgit2/libgit2

该命令会在当前目录下创建一个名为"libgit2"的目录,并在这个目录下初始化一个.git 文件夹,从远程仓库拉取下所有数据放入.git 文件夹,然后从中读取最新版本的文件的拷贝。

git clone https://github.com/libgit2/libgit2 mylibgit

自定义本地仓库名称为 mylibgit

跟踪新文件和暂存已修改文件

git add 命令用来跟踪新文件和暂存已修改文件。

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

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

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

# 添加每个变化前,都会要求确认。对于同一个文件的多处变化,可以实现分次提交
git add -p

如上图所示:

只要在 Changes to be committed 这行下面的,就说明是已暂存状态。

出现在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区,要暂存这次更新,需要运行 git add 命令。

来看一个更直观的图:

  • 上图中绿色的文件是已经暂存的,即被 git add 了,可以使用 git reset HEAD index.js 恢复到没有被 add 的状态;
  • 上图中红色的文件是未暂存的,仅仅是当前工作区的修改,可以使用 git checkout -- README.md 放弃当前工作区的修改;

在提交文件之前首先要添加文件到分支中,很多人只知道: git add . 。如果有文件删除,会发现这些删除的文件并没有被附加进去,怎么?

#方式一
git add --all .
#方式二
git add -A .
  • –all 参数,顾名思义,添加所有文件(change|delete|add)
  • -A 参数,添加修改过和删除过的文件(change|delete)
  • 不加 参数,添加修改过和添加的文件(change|add)

提交文件

# 提交暂存区到仓库区
git commit -m "comment"

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

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

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

# 使用一次新的 commit,替代上一次提交。如果代码没有任何新变化,则用来改写上一次 commit 的提交信息
git commit --amend -m [message]

# 重做上一次 commit,并包括指定文件的新变化
git commit --amend [file1] [file2] ...

# 如果没有删除过文件,可以合并添加和提交文件为一步
git commit -am "add and commit"

远程提交

首次推送

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

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

# 为远程 Git 更名为 origin
git remote add origin git@github.com:abcd/tmp.git

# 推送此次修改,这是首次推送需要加上-u,之后推送就可以直接 git push origin master,origin 是远程 Git 名字,这个可以自己定义,不过一般是用 origin,master 是默认的分支,如果不在 master 分支提交需要写清楚分支名称
git push -u origin master

将代码更改提交到远程仓库上:

# 将 master 提交到 origin 上
git push origin master

这一步操作可能会出现很多的问题,比如:

a) origin 为一个多人开发的库,别人在你提交之前已经向 origin 上提交过一次(或者多次),那么此时你的版本是落后于远程服务器版本的,你需要先拉去线上最新的代码:

# 拉去远程分支到 master
git pull origin master

b) 执行 a) 之后,有可能也会有提醒:存在冲突,需要合并分支;
c) 如果你很自信,觉得线上的版本是存在问题,你这个版本没有问题,你可以强制提交你的代码:

git push -u origin master -f

这里需要特别注意,加了 -f 参数,线上之前的修改就会被删掉,请谨慎使用!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文