git的基本命令

本文详尽介绍了Git的各种操作,包括安装、配置、创建和删除版本库、添加和删除文件、分支管理、标签管理、解决冲突、使用stash以及设置别名等。此外,还涉及到了如何与远程库交互,如克隆、推送和拉取。通过这篇指南,读者可以全面掌握Git的基本和高级用法。
摘要由CSDN通过智能技术生成

安装
$ sudo apt-get install git
配置

配置用户名和邮箱

$ git config --global user.name “Your Name”
$ git config --global user.email “email@example.com”

查看用户和邮箱配置

$ git config user.name
$ git config user.email

或者

$ git config --list
配置PGP签名私钥
git config --global user.signingkey

解决乱码问题

$ git config --global core.quotepath false

颜色配置

$ git config --global color.ui true
创建及删除版本库

创建版本库

$ git init

删除版本库

把.git文件删除
添加文件及删除文件

添加一个文件

$ git add readme.txt # 工作区–>暂存区
$ git commit -m “wrote a readme file” # 暂存区–>版本库

添加所有文件

$ git add .
$ git commit -m “add all files”

删除文件

$ git rm test.txt

根据私钥提交

$ git commit -S -m “GPG-sign”
查看工作区状态、修改内容及日志

查看工作区状态

$ git status

查看修改内容

$ git diff readme.txt

查看日志

$ git log

查看日志(可以显示出PGP签名)

git log --show-signature
$ git log --pretty=oneline

查看以往的命令记录

$ git reflog
时光穿梭

版本库回到上一个状态

$ git reset --hard HEAD^ === git reset --hard HEAD~1

版本库回到其他状态(可以重返之后的状态,配合git log或git reflog使用)

$ git reset --hard 3345674
用版本库里的版本替换工作区的版本

1.还没有git add

把工作区的修改丢弃,回到最近一次git commit或git add时的状态,to discard changes in working directory

$ git checkout – readme.txt

2.已经git add

Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:

$ git reset HEAD readme.txt

然后

$ git checkout – readme.txt
连接远程库

创建sshkey

$ ssh-keygen -t rsa -C “youremail@example.com”

登陆GitHub,打开“settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

添加远程库

$ git remote add origin git@github.com:saitama233/lxf-gitlearning

把本地内容推送到远程库(第一次需要加-u参数,之后就不需要了)

如果git push有冲突,可以先git pull解决冲突,再git push

$ git push -u origin master

把远程库克隆到本地

$ git clone git@github.com:saitama233/lxf-gitlearning

查看远程库

$ git remote

查看远程库(显示更详细的信息)

$ git remote -v
指定本地dev分支与远程origin/dev分支的链接
$ git branch --set-upstream dev origin/dev
分支管理

创建分支

$ git branch

切换分支

$ git checkout

创建+切换分支

$ git checkout -b

删除分支

$ git branch -d

强行删除分支(即删除还没有合并过的分支)

查看分支

$ git branch

合并某分支到当前分支

1.Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

$ git merge

2.加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并

$ git merge --no-ff -m “merge with no-ff” dev

克隆指定分支并重命名

$ git clone -b <远程指定分支> <远程仓库地址> <本地文件夹名>
分支中的冲突

先查看状态

$ git status

然后修改冲突文件

$ vi readme.txt
stash功能(把当前还未提交的工作现场“储藏”起来,然后切换到其他分支工作,之后回来再恢复现场)

暂存

$ git stash

恢复现场

1.一种方式是用git stash pop,恢复的同时把stash内容也删了

(这种貌似只能恢复到最后一个)

$ git stash pop

2.另一种方式是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除

这种可以指定恢复到哪个stash状态

$ $ git stash apply stash@{0}
标签管理
tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

创建标签(为当前commit)

$ git tag v1.0

创建标签(为其他commit)

$ git tag v0.9 6224937

创建带说明文字的标签

$ git tag -a v0.1 -m “version 0.1 released” 3628164

用PGP私钥签名一个标签

1.-s使用默认私钥

$ git tag -s v0.2 -m “signed version 0.2 released” fec145a

2.-u指定私钥

$ git tag -u FCC61057 v0.2 -m “signed version 0.2” 3a367e8

推送某个标签到远程服务器

$ git push origin v1.0

推送所有标签到远程服务器

$ git push origin --tags

删除标签

$ git tag -d v0.1

删除远程的标签

$ git tag -d v0.1
$ git push origin :refs/tags/v0.9

显示某个标签

$ git show v0.9

显示所有标签

$ git tag
设置别名

–global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。

用st来代替status

$ git config --global alias.st status

用lg来代替那一长串

$ 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”
不想继续追踪某个文件
git update-index --assume-unchanged your_file_path
如果想再次继续跟踪某个文件

git update-index --no-assume-unchanged your_file_path
新的解决方案

如果是对所有文件都取消追踪的话就是
git rm -r --cached . 不删除本地文件

git rm -r --f . 删除本地文件

执行上面的语句之后,再把文件添加到.gitignore文件中就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值