Git使用手册

1 安装

2 初始化

2.1 自己新开始一个项目

新建一个文件夹/找到你的项目文件夹,cd到目标目录后执行:

git init

---------------以下是执行结果---------
Initialized empty Git repository in /xxx(这是你的目标目录)

2.2 拉取已存在项目

cd到你想放置新项目的位置后执行:

git clone xxxx(拟拉取项目的url)

---------------以下是执行结果---------
Cloning into 'server-op-salesprocess'...
   ...
Resolving deltas: 100% (6061/6061), done.

3 添加文件

在已初始化的项目目录下执行:

git add something.txt(这是你要添加的文件)

-------------文件内容如下------------
aa
bb

4 提交修改

Git允许进行多次操作后统一进行提交,类似于数据库的事务提交,提交前可以使用如下命令查看本次有哪些修改还未提交:

git status

---------------以下是执行结果---------
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   something.txt

可以看到,本次修改是新添加了一个文件,要提交此次修改只需执行:

git commit -m "add a file"

---------------以下是执行结果---------
[main (root-commit) 4086b9c] add a file
 1 file changed, 2 insertions(+)
 create mode 100644 something.txt

上面的-m "add a file"是给本次提交添加注释,如果不加这一句,那么会弹出一个文本编辑器,让你输入注释。

5 修改文件

我们将刚才的something.txt的内容进行如下修改,并且不执行commit命令:

-----原文件内容----
aa
bb

-----新文件内容----

bb
cc

git会记录修改内容,使用如下指令查看文件修改前后差异:

git diff something.txt 

---------------以下是执行结果---------
diff --git a/something.txt b/something.txt
index 6ad4673..0c10089 100644
--- a/something.txt
+++ b/something.txt
@@ -1,2 +1,3 @@
-aa
+
 bb
+cc
(END)

"-aa"表示新文件中没有,而原文件中有的内容;“bb"表示未修改的内容;”+cc"表示新文件中有而原文件中没有的内容。

确认修改无误后,执行如下命令提交修改:

git add something.txt             // 将修改后的文件从 “工作区” 放入 “版本库的暂存区(stage)git commit -m "change context"    // 将stage的文件提交至当前分支

需要说明的是,如果修改某个文件后不执行add命令,那么执行commit时此次修改就不会被提交。因为这次修改仍在“工作区”中,而commit只会提交已经使用add加入“stage”的修改。

PS:工作区的内容指的是直接打开文件夹查看到的内容;版本库指的是隐藏目录.git。

6 回退

6.1 普通回退

在回退之前,我们可以使用如下命令查看有哪些历史版本:

git log

---------------以下是执行结果---------
commit 9a399739a7e4a0c0333c62313d7bc2378f64b4e7 (HEAD -> main)
Author: caozhigao <caozhigao@meituan.com>
Date:   Fri May 31 14:32:08 2024 +0800

    change context

commit 4086b9c98b32d3bada58f8ed758dbe67060e92fc
Author: caozhigao <caozhigao@meituan.com>
Date:   Fri May 31 14:03:39 2024 +0800

    add a file
(END)

我们可以看到有两个历史版本,可以使用如下几个命令回退:

git reset --hard HEAD^    // 其中HEAD表示当前指针指向的版本,^表示往回1个版本,如果是往回2个版本用^^,以此类推
git reset --hard HEAD~1   // 其中~n,表示往回退n个版本
git reset --hard 4086b    // 4086b是某个commit的版本号的开头的一部分,要能找到唯一那个版本,该命令同样可以用来从旧版本返回新版本
git reset --hard          // 直接丢弃所有未commit的修改

6.2 软回退

软回退即保留回退节点的内容不变,但是删掉提交记录。

假设你的提交历史如下:

A -- B -- C (HEAD, current branch)

你想要将当前分支重置到 B,但保留 C 中的更改。你可以使用以下命令:

git reset --soft B

此时,提交历史变为:

A -- B (HEAD, current branch)

C 中的更改仍然保留在暂存区。

什么时候使用 git reset --soft?

更改提交历史:你可能提交了一些修改,但发现提交信息写错了或者需要重做这个提交。此时,可以使用 git reset --soft 将 HEAD 重置到上一个提交,从而沿用之前的更改内容重新提交。

合并多个提交:有时你想要将若干次小的提交合并成一个更大的提交,可以使用 git reset --soft 回退到某个提交,然后重新进行一次统一的提交。

7 删除文件

在删除文件前,先在项目中添加一个名为test.txt的文件用作等下删除用。执行如下命令删除test.txt:

git rm test.txt
git commit

8 分支

可使用如下命令来创建和切换分支:

git checkout 9a39          //首先来到一个想要进行分支的节点

git branch myBranch        //创建一个名为myBranch的分支
git checkout myBranch      //从当前分支切换到myBranch分支
// git checkout -b myBranch   //相当于合并了上面两条命令

// 尝试在新分支添加一个文件
vi myBranchDoc.txt
git add myBranchDoc.txt
git commit

用如下命令来合并分支:

git branch              // 显示所有分支,带*的表示当前所在分支
git checkout main       // 切换到main分支
git merge myBranch      // 将myBranch合并到main,此时main下面有了myBranch的内容

9 远程仓库

9.1 上传本地工程

当你已经在本地有一个在开发的项目,而你现在想将它同步到远程仓库:

cd 现有项目的根目录
git init
git add --all
git commit -m "任何你想要作为提示的文字"
git remote add 仓库名 你的远程仓库地址(就是clone用的那个)
push 仓库名 HEAD:master

9.2 更改远程仓库的地址

将已有远程仓库的地址:

cd 现有项目的根目录
git remote set-url 仓库名 新地址
git push 仓库名 HEAD:master

其中仓库名可以使用如下命令查找:

git remote -v

9.3 提交新修改

# 查看当前状态,有哪些文件被改了
git status

# 添加所有修改的文件
git add .

# 提交修改
git commit -m "详细描述本次更新内容"

# 推送到远程仓库
git push 仓库名 分支名

9.4 提出一个PR(Pull Request)

将一个分支的修改合并到远程的另一个分支有两种做法,假设现在修改的分支是A,需要将A合并到目标分支B上:一种是修改本地代码后更新到远程同名分支A,然后通过网页端请求合并到目标分支B,这是通过PR请求合并的流程;另一个方式可以绕过PR,即在本地分支A修改代码后,在本地切换到本地的目标分支B,然后merge修改后的分支A,最后把目标分支B推到远程分支B。

不建议使用第二种方式,因为这避开了代码审查,可能会影响代码质量。

# 1. Fork项目,然后克隆副本到本地
git clone https://github.com/your-username/repository-name.git
cd repository-name

# 2. 创建新分支
git checkout -b new-feature-branch

# 3. 进行代码修改并提交
# 进行代码修改
git add .
git commit -m "Add new feature or fix bug"

# 4. 推送分支到远程仓库
git push origin new-feature-branch

# 5. 在GitHub上创建Pull Request
# 打开你forked的项目页面
# 点击“Compare & pull request”
# 填写详细信息后点击“Create pull request”

# 6. 代码审查与讨论
# 根据反馈进行修改,在本地再次提交并推送
git checkout new-feature-branch
# 修改代码并提交
git add .
git commit -m "Address comments"
# 再次推送修改
git push origin new-feature-branch

# 7. 维护者合并Pull Request
# 维护者在GitHub上点击“Merge pull request”按钮
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值