git常见命令和使用记录

工作区、暂存区和版本库

先理解下 Git 工作区、暂存区和版本库概念:
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

git安装

windows在官网下载安装即可

使用git准备工作

第一步:刚下载安装的 git 都需要先配置用户名和邮箱:

git config --global user.name "xxx"
git config --global user.email "xx@xx.com"

#如果是已经存在git你不想看看有没有设置
git config user.name
git config user.email

第二步:要想从 github 或者 gitlab 上实现 clone/pull/push 等操作,首先就得在本地创建 SSH Key 文件,在用户主目录下,查看是否有 .ssh 目录,看这个目录下是否有 id_rsa 和 id_rsa.pub 这两个文件,如果没有,则需要打开 shell(windows 系统打开Git Bash),在命令行中输入:

ssh-keygen -t rsa -C "youremail@example.com"
#然后:
Enter file in which to save the key (/home/xxx/.ssh/id_rsa):
#一般默认就好了
Enter passphrase (empty for no passphrase):
#接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),
#当然,你也可以不输入密码,直接按回车。那么clone、push之类的时候就不需要输入密码,直接提交到github上了

第三步:登录 Github,打开 "Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,就可以看到已经添加的 Key 了。之后你就可以玩转 Git了。

为什么 GitHub 需要SSH Key呢?
因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git 支持 SSH 协议,所以,GitHub 只要知道了你的公钥,就可以确认只有你自己才能推送。
后面会有远程仓库的使用,这个就用得上了。

创建repository,add,commit

git init  #使用当前目录作为Git仓库
git init newrepo #使用指定目录作为Git仓库

使用 git add 命令告诉 Git 开始对这些文件进行跟踪

git add . #当前目录下所有文件
git add *.c  #当前目录下所有.c文件
git add README

提交

$it commit -m '初始化项目版本'

注: 在 Linux 系统中,commit 信息使用单引号 ',Windows 系统,commit 信息使用双引号 "。

所以在 git bash 中 git commit -m ‘提交说明’ 这样是可以的,在 Windows 命令行中就要使用双引号 git
commit -m “提交说明”。

克隆

git clone <repo>
git clone git://github.com/schacon/grit.git

常用命令

git status 查看仓库当前的状态,显示有变更的文件。
git diff 比较文件的不同,即暂存区和工作区的差异。
git reset 回退版本
git rm 根据指令删除工作区、暂存区文件
git mv 移动或重命名工作区文件。
git log 查看提交历史
git checkout – file 撤销修改,谨慎操作,最终会做哦那个到工作区的,总之,就是让这个文件回到最近一次git commit或git add时的状态。
命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令

git rm
1.从工作区和暂存区删除
git rm
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
2.如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中
git rm --cached

git reset版本回退

git reset [--soft | --mixed | --hard] [HEAD]

打标签

git tag v1.0 #打上v1.0的标签

–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变
–soft 参数用于回退到某个版本
–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

git分支管理

1.创建分支
git branch (branchname)
2.切换分支
git checkout (branchname)
git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下

3.合并分支
git merge (branchname)
合并完后一般就可以删除分支
4.列出分支
git branch
5.删除分支
git branch -d (branchname)

远程仓库

1.添加远程仓库,如github

 git remote add origin git@github.com:用户名/learngit.git
 #对的,就算git clone 用的那个链接
 #如果已存在,可以删除在添加,或者修改
 git remote -v #远程仓库查询
 git remote set-url origin <remote-url> #修改
 git remote rm origin #删除
 

2.推送到远程仓库

git push -u origin master

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

git push origin master

如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:

git push --force origin master
git push -f origin master

温柔点就是
通过git pull 先将本地库更新到与远程库一致的版本,但要注意本地库后来做的修改可能被覆盖,最好使用git fetch(不会自动合并),查看更新情况再有选择合并,或者先将本地库修改过的文件备份,git pull后再重新修改;
再运行git push即可。

推送本地新创建分支到远程仓库新分支:

git push origin local_branch:remote_branch

3.查看远程库信息和删除远程仓库
git remote -v
git remote rm origin

push 的时候过滤

参考
push的时候,想保留空文件夹?
其实这里有两种情况:
一、目录是空的
这种情况下只需要在目录下创建.gitkeep文件,然后在项目的.gitignore中设置不忽略.gitkeep
.gitkeep 是一个约定俗成的文件名并不会带有特殊规则

二、目录中已经存在文件,但是过滤后空了

那就需要首先在根目录中设置!.gitignore,然后在目标目录也创建一个.gitignore文件,并该在目标目录文件中添加如下内容,注释可以不要

# ignore all except .gitignore file 
*
!.gitignore

参考
https://blog.csdn.net/qq_29918313/article/details/103592178

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值