git命令

本文详细介绍了Git的基本操作,包括创建仓库、管理文件、分支操作、远程仓库的使用以及多人协作流程。重点讲解了如何初始化仓库、添加与提交文件、撤销修改、删除文件和分支管理。此外,还阐述了如何将本地仓库推送到GitHub远程仓库,以及如何从远程克隆仓库。最后,提到了标签管理,包括创建、查看、推送和删除标签的命令。
摘要由CSDN通过智能技术生成

以下内容均来自here,此处仅作摘录及个人参考

创建一个仓库

$ mkdir learngit
$ cd learngit
$ pwd
/home/name/learngit

通过git init命令将这个目录变成Git可以管理的仓库

$ git init
Initialize empty Git repository in /home/name/learngit/.git/

编写一个readme.txt文件,内容如下

Git is a version control system.
Git is free software.

需要将该文件放在上面创建好的learngit目录下。

第一步:用git add告诉git,把文件添加到仓库

$ git add readme.txt

注意:git命令必须在git仓库目录内执行,在仓库目录外执行是没有意义的

第二步:用命令git commit告诉Git,把文件提交到仓库:

git commit -m "wrote a readme file"

为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

修改readme.txt文件后,运行git status查看当前仓库的状态,每次修改都需要再次git add,然后再用commit命令提交,然后用git diff查看修改的具体内容

git log 查看修改的历史记录。
回退到上一个记录
首先Git必须知道当前版本是什么,Git中用HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本。
回退版本:

git reset --hard HEAD^

git提供了git reflog命令来记录每一次命令,可以用来查找commit ID
总结:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
git reset HEAD <file>可以把暂存区的修改撤销掉,回到工作区的场景。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除操作
如果要删除文件,可以直接rm file,此时工作区的文件被删除,但版本库里依然存在,此时需要用git rm file来删除版本库中的文件,然后commit该变化。
另一种情况是删错了,需要从版本库里恢复该文件,可以使用git checkout -- file
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

远程仓库

首先在GitHub上创建一个新的仓库,然后将本地的仓库添加到远程仓库上去,在本地的仓库下运行一下命令:

git remote add origin git@github.com:Marveller10/learngit.git

写一步,可以把本地库的所有内容推送到远程库上:

git push -u origin master

由于远程仓库是空的,所以第一次推送需要加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

之后,只要本地做了提交,就可以通过命令将本地的master分支的修改推送到GitHub上去。

git push origin master

删除远程库:
首先查看远程库信息

git remote -v

然后根据名字删除:比如删除origin

git remove rm origin

从远程库克隆
假设从零开始开发,最好的方式是先建立远程仓库,然后从远程库克隆,登录GitHub,创建一个新仓库,勾选Initialize this repository with a README,这样GitHub会自动创建一个readme.md文件
之后使用命令

git clone git@github.com:Marveller/gitskills.git

之后进入gitskills目录里查看,可以发现已经有README.md文件


分支管理:
查看分支:git branch
创建分支:git branch <name>
切换分支:git switch <name>
创建+切换分支:git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

多人协作流程:

  • 查看远程库信息,使用git remote -v;

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

创建一个分支:

  • 使用git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit ID

  • 命令git tag -a <tagname> -m "blablabla"可以指定标签信息

  • 命令git tag可以查看所有标签

  • 命令git push origin 可以推送一个本地标签;

  • 命令git push origin --tags可以推送全部未推送过的本地标签;

  • 命令git tag -d 可以删除一个本地标签;

  • 命令git push origin :refs/tags/可以删除一个远程标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值