基本使用流程

从本地新建

初始化(git init) —> 新代码添加到缓存区(add) —> 与远程仓库关联(remote) —> 提交代码(commit) —>拉取远程代码以免冲突(pull) —> 推送代码到仓库(push)

从远程拉取然后推送

拉取仓库已有代码(clone) —> 新代码添加到缓存区(add) —> 提交代码(commit) —> 拉取远程代码以免冲突(pull) —> 推送代码到仓库(push)

项目初始化的最基本操作

初始化 init

在项目根目录下进行初始化,然后就可以看到当前目录出现 .git文件夹

  1. git init

将文件添加到缓存区 add

git add [文件名] 将当前目录下指定文件添加, . 表示将当前目录的所以文件全部添加

git add .

将本地目录与远程仓库相关联 remote

git remote add origin 远程仓库地址

提交代码到远程仓库基本操作

clone 拉取代码

根据远程仓库的地址来克隆,默认是master分支

git clone [-b] [分支名] [address]

下拉指定分支代码
git clone --branch(或者 -b) [tags标签] [git地址]

commit 提交代码并填写备注

双引号里的就是备注信息

git commit -m "first commit"

pull 远程库与本地库代码合并

使用pull命令下拉,这里master指的是主分支 与 对应的仓库简历关联

git pull=git fetch + git merge

git pull origin master

当多个人对同一个分支操作提交时可以会出现提交的版本落后于仓库的版本,这时候就需要使用git rebase改变分支依赖
git pull —rebase=git fetch + git rebase

git pull --rebase origin master

在手动解决冲突的改动可能还需要以下命令

继续rebase

git rebase --continue

跳出当前的rebase回到分支上

git rebase --skip

此命令把本地缓存清除(注意 . 表示当前目录)把commit提交的清空,此命令选择性使用

git rm -r --cached .

push 推送

第一次推送时要输入账号密码 ,master指主分支,此命令加了-u 敲回车后就会出现弹出框要求输入账号密码

git push -u origin master

从第二次开始就可以不用加-u 指令 在命令最后加 -f 表示强制推送 远程仓库的内容就和当前目录下的一模一样了

git push origin master [-f]

设置忽略上传的文件

java项目现在基本都使用maven和idea搭建,而git默认把当前目录下所有文件都上传,运行时产生的.idea目录、.iml文件、target目录都不需要上传, 所以需要在目录里创建.gitinore文件设置忽略上传的文件,IDEA项目下推送文件则要忽略.idea文件夹、.iml文件以及target文件夹

在.gitignore文件中加入如下代码

##----------idea----------
*.iml
.idea/
*/target/
*.ipr
*.iws

版本回溯

查看提交记录

git log命令可以查看到所有commit的id

git log

git reflog查看所有commit的id的和相应的操作,这里的id和上面不一样,只有前七位,但是效果一样

git reflog

回到指定版本

git reset [commitID] 通过指定commit的id回溯到对应的版本,有三个参数可供选择

  • —hard——不保存所有变更
  • —soft——保留变更并且变更内容处于Staged(已经add)
  • —mixed——默认使用的参数,保留变更且变更内容处于Modified(没有add)
git reset [commitID]

刚刚commit完了然后想撤销

git reset --soft HEAD^

git项目的分支操作

查看分支

有*的为当前分支

git branch

更新远程分支代码到本地当前分支

git pull origin <分支名称>

只拉取远程分支,不更新本地当前分支代码

git fetch [分支名称]

创建分支

name为分支名,template为哪个commit为模板,如果不填默认以当前的commit为模板

git checkout -b [name] [template]

在本地创建以远程仓库的分支为模板的分支
git checkout -b [name] origin [template]

删除分支

删除本地分支

git branch -d [branchName]

切换分支,如主分支

git checkout master

分支合并

name表示分支名

git merge [name]

如果合并发现冲突,需要手动操作保留哪些代码

将本地分支与远程分支关联

image.png

it branch --set-upstream-to=origin/feature feature

设置上流分支

如果提交到克隆下来的仓库,而分支只有本地有,远程仓库没有,此时需要此命令

git push --setup-stream

根据分支名将本地分支推送上去

git push origin [name]

版本回退 撤销操作

撤回最近一次操作

撤回最近一次的commit(撤销commit,不撤销git add)

git reset --soft HEAD~1

撤回最近一次的commit(撤销commit,撤销git add)

git reset --mixed HEAD~1

撤回最近一次的commit(撤销commit,撤销git add,还原改动的代码)

git reset --hard HEAD~1

指定版本

git reset --hard ca936c3

删除本地已提交的文件,删除已经提交的nacos文件夹,本地不会删除

git rm -r --cached nacos

一些设置

查看config配置:git config —list
查看git用户名:git config user.name
清除缓存的用户名和密码:git credential-manager uninstall
更改全局用户名:git config —global user.name “username”
更改全局邮箱:git config —global user.email “eamil@qq.com”

git保存用户名和密码,避免每次输入

打开系统盘当前用户的目录 C:\Users\Administrator (如果你配置了个人用户名,就是C:\Users\当前用户名)
在当前位置,打开 GitBash,执行如下命令:

git config --global credential.helper store

执行结束,会发现当前文件夹下的 .gitconfig 文件中多了如下内容:
image.png
保存成功时会发现该目录下多了一个文件
image.png