0


玩转Git: 程序员的日常手册

玩转Git: 程序员的日常手册

一、Git简介:

Git是一个分布式版本控制系统,也是一个开源项目,最初为了帮助Linux内核开发。Git主要着重于数据完整性,数据的离散存储以及支持非线性开发,例如多个并行的散射分支。它具有超强的合并和分支操作。

二、开始使用 Git

在开始之前,我们需要首先在Git官方网站安装 Git。完成后,打开你的终端(Terminal),输入以下命令进行配置:

git config --global user.name "你的用户名"git config --global user.email "你的邮箱地址"

(当你首次使用git时,需要设置你的用户名和邮箱,这些信息将用作你计算机上git的识别标志。如果你拉取那些需要登录权限的远程仓库时,git将默认使用这些配置的邮箱和用户名进行登录,需要你手动输入密码,也可以不配置,需要登录时会让你手动输入用户名、邮箱、以及密码。)

三、创建新仓库

在你的工作目录下新建一个仓库很简单,只需以下两步:
1,创建一个新的目录,进入,然后运行 git init,以创建一个新的仓库。
2,将你的项目复制到这个目录下。

四、克隆仓库

如果你想获取一个已创建的 Git 仓库的副本,例如,你想为一个开源项目贡献代码,可以使用 git clone 命令。
例如:

git clone https://github.com/user/repo.git

五、基本workflow

1、你的本地仓库由三部分构成:工作目录、暂存区(Index)以及头部(HEAD)。
在Git中,有三个工作区的概念:Git 仓库、工作目录和暂存区。-
工作目录:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
Git 仓库:工作目录有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
这三部分的交互关系可参考以下示意图:
在这里插入图片描述
2、添加和提交
你可以提出更改(把它们添加到暂存区),使用如下命令:

git add <filename>

或者

git add *

要提交这些更改,执行:

git commit -m "代码提交说明信息"

3、推送更改
你的更改现在已经在本地仓库中。要将这些更改推送到远程仓库,执行:

git push origin master

4、"暂存"的使用
Git提供了一个叫做 stash 的命令,可以把当前工作的暂存状态保存起来,这样你就可以随时切换到其他分支,做其他的工作,然后再回来继续之前的工作。
当你想保存当前的工作状态,只需输入一下命令:

git stash

你可以多次执行git stash,保存多个临时现场。恢复暂存的现场有两个办法,一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了:

git stash apply 
git stash drop

或者

git stash pop

六、合并操作

当你已经完成了新功能的开发并想将其汇入主分支以供其他人使用时,你需要执行合并操作。假设你想将feature分支合并到master分支,可以通过下列步骤:

git checkout master
git merge feature

如果Git可以自动合并,你只需简单地提交即可,不需要进一步操作。如果合并成功,即merge没有冲突,feature分支可以删除了。

七、解决冲突

然而,有些情况下,Git无法自动处理合并。这就是所谓的冲突(conflicts)。编辑器中会显示冲突的文件,你可以手动解决冲突。解决完冲突后,再提交,合并完成。Git中的冲突解决,我们可以通过以下步骤进行:
1,Identify the conflict:
使用 git status 命令,它会显示所有冲突的文件。
2,Open the conflict file:
当你打开那个冲突的文件,你会看到以下的内容:

<<<<<<<HEADThis is some content tomesswithmy plans
  =======This is going tobe a problem
  >>>>>>>new-branch

这些内容的意思是在 ======= 线上的部分(HEAD)是你当前分支的版本,而线下的部分(new-branch)是要合并进来的版本。
3、Resolve conflict:
你需要手动确定保留哪个版本,或者可能你需要把这两者包含的变更合并在一起。修改完成后,删除 <<<<<<< HEAD, =======, >>>>>>> new_branch这三行。
4、Commit the changes:
解决冲突后,使用 git add . 将改动添加到暂存区,然后使用 git commit -m “conflict resolved” 提交。

八、git回滚

Git提供了多种方法可以帮助我们对代码仓库进行回滚,当你想撤销某个提交时,可以使用git reset命令或 git revert命令。这两个命令都有各自的用途,但它们的工作方式略有不同。下面我将以示例的方式一一介绍。
1,使用git reset 回滚到特定的提交
git reset可以回滚到你指定的任何一个commit。假设我们有5个commit,现在我们想回滚到第3个commit,首先我们可以使用git log命令来查看所有的commit历史。

$ git log --oneline
d0e2f17 (HEAD -> master) Fifth commit
5b6e445 Fourth commit
8a2a619 Third commit
fd4bfd8 Second commit
ecc1899 First commit

这显示了所有的commit以及它们的哈希值。现在,我们可以使用

git reset --hard 8a2a619

命令来回滚到“Third commit”。这将会丢弃所有在第3个提交之后的修改。
注意,

git reset --hard

是一个危险的操作,因为它会丢弃所有未提交的修改。如果你只是想撤销commit,但是保留修改,你可以使用

git reset --soft


2、使用git revert 回滚某个提交

git reset

不同,

git revert

会生成一个新的commit来撤销指定的提交,这样做的好处是它不会改变项目的历史。让我们通过一个示例来解释这种情况。如果我们想撤销“Fourth commit”,我们可以运行

git revert 5b6e445


这将打开一个新的文本编辑器窗口,你需要在其中输入新创建的commit的信息。一旦你保存并关闭编辑器,

git revert

将生成一个新的commit来撤销“Fourth commit”。
通过这两个方法,你可以根据需要选择进行回滚操作。每种方法都有其优点,选择哪种取决于你的具体需求。

Git是一个非常强大的工具,只有不断去实践和探索,才能更深入理解和熟练使用这个工具。最后,希望这篇文章对你有所帮助,加油!

标签: git java gitlab

本文转载自: https://blog.csdn.net/mzh200801/article/details/135020918
版权归原作者 老D不是传说 所有, 如有侵权,请联系我们删除。

“玩转Git: 程序员的日常手册”的评论:

还没有评论