> 文章列表 > Git的详细过程

Git的详细过程

Git的详细过程

目录

  • 一、创建新仓库
  • 二、添加和提交
  • 三、推送改动
  • 四、分支
  • 五、解决冲突
  • 六、标签
    • 6.1 log
  • 七、修改文件
  • 八、配置别名
  • 九、备注

一、创建新仓库

创建新文件夹,打开,执行:

git init (初始化)

来创建新的Git仓库


从远程库克隆

git clone git@github.com:Yan-Zhi-Liang/learngit.git

二、添加和提交

⭕️ 第一步:提出更改(添加到暂存区),执行:

git add <filename> 

git add .

⭕️ 第二步:提交改动 ,执行:

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

现在,你的改动已经提交到了 HEAD , 但还没到远端仓库

三、推送改动

⭕️情况一:你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库

git push origin master (origin代表远端仓库,master代表本地的一个分支仓库)

可以把 master 换成你想要推送的任何分支

⭕️ 情况二:如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,可以使用如下命令添加:

git remote add origin <server> (<server>例子:git@github.com:Yan-Zhi-Liang/learngit.git)

将你的改动推送到所添加的服务器

四、分支

分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。


⭕️ 第一步: 创建一个叫做“feature_x”的分支,并切换过去 :

git checkout -b feature_x

git switch -c feature_x

⭕️ 第二步:切换回主分支

git checkout master

git switch master

⭕️ 第三步:合并分支master

git merge feature_x

⭕️ 第四步:再把新建的分支删掉:

git branch -d feature_x

除非你 将分支推送到远端仓库 ,不然该分支就是不为他人所见的:

git push origin <branch>

查看分支详情:

git branch

查看远程库信息:

git remote -v

五、解决冲突

发现冲突,执行:

git merge feature_x

存在冲突。
查找冲突文件:

git status

修改文件,添加与提交


用带参数的git log也可以看到分支的合并情况:

git log --graph --pretty=oneline --abbrev-commit

最后,删除分支:

git branch -d feature_x

六、标签

打标签一般是在master上打的
执行如下命令创建一个叫做 v1.0.0 的标签:

git tag v1.0.0 1b2e1d63ff

1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符
查看所有标签:

git tag

查看标签信息:

git show <tagname>

可以创建带有说明的标签:

git tag -a v0.1 -m "version 0.1 released" 1094adb

删除标签:

git tag -d v0.1

推送某个标签到远程,使用命令:

git push origin <tagname>

一次性推送全部尚未推送到远程的本地标签:

git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

git tag -d v0.9

然后,从远程删除。删除命令也是push,但是格式如下:

git push origin :refs/tags/v0.9

即:git push origin :refs/tags/


可以使用下列命令获取提交 ID:

git log

git log --pretty=oneline

可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性

6.1 log

了解本地仓库的历史记录,最简单的命令就是使用:

git log

添加一些参数来修改他的输出,从而得到自己想要的结果。
某一个人的提交记录:

git log --author=bob

一个压缩后的每一条提交记录只占一行的输出:

git log --pretty=oneline

通过 ASCII 艺术的树形结构来展示所有的分支, 每个分支都标示了他的名字和标签:

git log --graph --oneline --decorate --all

看看哪些文件改变了:

git log --name-status

七、修改文件

丢弃工作区的修改:

git checkout -- <filename>

把暂存区的修改撤销掉,重新放回工作区:

git reset HEAD <filename>

丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:

git fetch origingit reset --hard origin/master

查看文件修改了什么内容:

git diff <filename>

八、配置别名

git config --global alias.st statusgit config --global alias.co checkoutgit config --global alias.ci 'commit -m'git config --global alias.br branchgit config --global alias.mg merge
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

九、备注

两次大写的Z,可以退出 git 的日记文件