Git 官方使用文档:Git - Reference
目录
(1)IDEA操作:回退——已经Commit但是没有Push
一、基本操作
1、初始化git仓库
- git init // 在文件夹下打开git,进行初始化,初始化后会出现.git文件夹(隐藏属性)
设置身份信息(告诉git你是谁):
- git config --global user.name "your name"
- git config --global user.email "your email"
查看全局配置:
- git config --global --list
2、添加和提交文件
(1)git add .
git add xx 命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A . 来一次添加所有改变的文件。
注意:-A选项后面还有一个句点。git add -A表示添加所有内容,git add . 表示添加新文件和编辑过的文件不包括删除的文件;git add -u表示添加编辑或者删除的文件,不包括新添加的文件。
(2)git commit -m "提交注释"
(3)git push origin 分支名称
相关命令:
- git status :查看git库的状态,未提交的文件,分为两种,add过已经在缓冲区的,未add过的
- git add filename :添加文件,把文件添加到缓冲区
- git rm filename :删除文件
- git commit -m "提交的说明" :commit可以一次提交缓冲区的所有文件
- git diff filename :比较:如果文件修改了,还没有提交,就可以比较文件修改前后的差异
- git pull :拉去远程仓库代码
- git push :将本地仓库代码推送到远程
3、快照和日志——git log
查看日志命令:
- git log :查看提交日志
- git log --oneline :将提交记录归结为一行显示
快照图示:其中V1,V2,V3...都是一个快照
4、比较差异——git diff
比较差异使用图示:
5、其他命令
- clear bash窗口进行清屏
二、分支操作
1、查看分支操作——git branch
- git branch 查看本地分支
- git branch -a 查看所有分支
- git branch -r 查看远程分支
- git fetch origin 从远程拉去分支代码
2、创建和删除分支
创建分支:
- 创建分支dev:git branch dev(新分支名字)
- 创建并切换:git checkout -b dev master 从
master
分支分化一个新分支名为dev
,并切换到dev
分支上去。 - git push origin 本地分支名:将本地分支推送到远程仓库。
- git push --delete origin 远程分支名:删除远程分支。
- git branch --set-upstream-to=origin/远程分支名 本地分支名 :将远程分支和本地分支进行关联跟踪
删除分支:
- 删除分支:git branch -d
3、合并分支
(1)git操作步骤
- 首先切换到主分支master上:git checkout master
- 把分支dev合并到master分支上:git merge dev
- 解决冲突无误后提交:git push
(2)IDEA操作步骤图示
分支操作图示:
4、版本回退和恢复
(1)IDEA操作:回退——已经Commit但是没有Push
(2)Git操作:版本回退——已经push后,回到原来版本
版本回退步骤:
- 查看历史提交记录:git log --pretty=oneline / git log --oneline
- 查看某个人在某个分支上的历史提交记录: git log $分支名 --author="用户名" --pretty=oneline
- 选中需要回退的版本号:git reset --hard 版本号 / git reset --hard HEAD^(上一个版本是HEAD^,上上一个版本是HEAD^^,往上20个版本是HEAD~20)
- 提交到远程:git push -f
注:当执行版本回退的时候,可能IDEA代码没什么变化或者代码全部失效,这个时候删除原项目,只要重新导入一遍项目就可以了。
撤销回退步骤:
- 显示所有操作记录:git reflog
- 找到想要回退的操作记录码:git reset --hard 记录码
- 强制提交到远程:git push -f
5、本地分支和远程分支操作
(1)分支同步
问题:使用 git branch -a 命令可以查看所有本地分支和远程分支,发现很多在远程仓库已经删除的分支在本地依然可以看到。
- git remote show origin 命令,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
- git remote prune origin 命令,可以批量删除本地那些远程仓库不存在的分支,也就是进行本地和远程分支同步。
(2)切换远程仓库地址
直接修改:
- git remote -v :查看远程仓库地址
- git remote set-url origin 你新的远程仓库地址 :直接修改远程仓库地址
先删除后修改:
- git remote rm origin :删除远程仓库地址
- git remote add origin 你新的远程仓库地址 :添加远程仓库地址
- git push -u origin master :将本地代码push到远程仓库,并作为仓库的主分支(远程仓库新建使用)
(3)凭证管理
修改远程仓库后,可能会出现如下情况(访问被拒绝):
$ git push -u origin master
remote: Permission to swadian2008/springbootdemo.git denied to swadian2018.
fatal: unable to access 'https://github.com/swadian2008/springbootdemo.git/': The requested URL returned error: 403
这种情况一般是本地保存了凭据,身份信息不一致导致的,因此只要删除本地凭证就可以了
6、工作缓存——git stash
- git stash save "save message" :执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
- git stash list :查看stash了哪些存储
- git stash apply:应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
- git stash clear:删除所有缓存的stash
7、git拉取远程分支到本地
步骤1:本地新建一个文件夹,并在文件里进行初始化:git init
步骤2:自己要与origin master建立连接(下划线为远程仓库链接)git remote add origin git@github.com:XXXX/nothing2.git
步骤3:把远程分支拉到本地 :git fetch origin dev(dev为远程仓库的分支名)
步骤4:在本地创建分支dev并切换到该分支:git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
步骤5:把某个分支上的内容都拉取到本地:git pull origin dev(远程分支名称)
执行完上述五个步骤,在本地创建的文件夹中,就可以看到分支的内容了。
新增push步骤6:指定push的分支:git push origin dev(远程分支名称)