Commonly Used Git Commands
2024-04-21 02:11:20

ssh密钥设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//设置Git的user name和email
git config --global user.name "L0kiii"

git config --global user.email "[email protected]"

//检查是否已经有SSH Key
cd ~/.ssh

ls

//生成密钥
ssh-keygen -t rsa -C "[email protected]"

//添加密钥到ssh-agent
eval "$(ssh-agent -s)"


ssh-add ~/.ssh/id_rsa

//登录github add an SSH Key复制粘贴步骤不再叙述

//测试
ssh -T [email protected]
//成功回显
Hi L0kiii! You've successfully authenticated, but GitHub does not provide shell access.

项目部署

1
2
3
4
5
6
7
8
9
10
11
git init

git remote add origin [email protected]:L0kiii/xxxx.git

git pull origin master –allow-unrelated-histories

git add <file>/ git add <dir>/git add .//多个用空格隔开

git commit -m "first commit"

git push -u origin master/git push -u origin master -f

提交文件到索引库

“索引”保存工作树内容的快照,并且将该快照作为下一个提交的内容。 因此,在对工作树进行任何更改之后,并且在运行 git commit命令之前,必须使用 git add命令将任何新的或修改的文件添加到索引。

新建test.txt文件
提交test.txt文件到索引库

1
git add test.txt

查看目录中所有修改过或已删件但没有提交的文件

1
git add -i [<path>]

提交索引文件到仓库

-m参数是本次修改的描述

1
git commit -m "add a test.txt file"

关联远程仓库

1
git remote add origin [email protected]:Github用户名/GitTest.git

把本地库的所有内容推送到远程库上

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,不加任何参数使用 git push

1
git push -u origin master 

显示工作目录和暂存区的状态

git status命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件

1
git status

git diff 文件对比

假设仓库里已提交的有五个版本,依次提交的是A、B、C、D、E 。
不加参数即默认比较工作区与暂存区

1
git diff

查看最近两次提交版本的区别(版本E和版本D的差别)

1
git diff HEAD^ -- <filename> 

命令则可以查看最近一次提交和最近一次提交的上上个版本的区别(版本E和版本C的差别)

1
git diff HEAD^^ -- <filename>

查看版本E和版本A的差别

1
git diff HEAD~4 -- <filename> 

查看版本历史记录

1
2
3
git log

git log --pretty=oneline

版本回退

回退到上一个版本

1
2
3
git reset --hard HEAD^

git reset --hard [commit id]

HEAD指向的版本就是当前版本

查看git历史命令

1
git reflog

撤销工作区的修改

1
git reset HEAD <filename>

下面的命令还可以撤销工作区中删除的文件

1
git checkout -- <filename>

从版本库中删除文件

1
git rm <filename>

工作区和暂存区

工作区

工作区就是在电脑里所看到的目录。

版本库

工作区中的 .git目录不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为 stage(或者叫 index)的暂存区,还有Git为我们自动创建的第一个分支 master,以及指向 master的一个指针叫 HEAD
图片.png图片.png

创建和合并分支

创建+切换分支 dev

1
$ git checkout -b dev

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

1
2
$ git branch dev
$ git checkout dev

创建分支

1
$ git branch dev

切换分支

1
$ git checkout master

查看当前分支
git branch命令会列出所有分支,当前分支前面会标一个*号。

1
2
3
$ git branch
* dev
master

合并分支
合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
git merge命令用于合并指定分支到当前分支。

1
2
git merge dev
git merge --no-ff -m "merge with no-ff" dev

删除分支

1
$ git branch -d dev

保存未提交的修改

git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
查看已储存的文件

1
git stash list

恢复已储存的文件

1
git stash apply

恢复已储存的文件并删除stash中的内容

1
git stash pop

标签管理

创建标签
默认标签是打在最新提交的commit上的

1
$ git tag v1.0

对指定 commit id打标签

1
$ git tag v0.9 [commit id]

查看所有标签

1
$ git tag

查看标签信息

1
git show <tagname>

删除标签

1
$ git tag -d v0.1

推送标签到远程

1
$ git push origin <tagname>

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

1
$ git push origin --tags

删除远程标签

1
2
3
4
5
6
7
8
先从本地删除
$ git tag -d v0.9
Deleted tag 'v0.9' (was f52c633)

然后从远程删除
$ git push origin :refs/tags/v0.9
To github.com:michaelliao/learngit.git
- [deleted] v0.9

Referer

图片.png

Prev
2024-04-21 02:11:20
Next