背景:
1.电脑安装了Git
2.注册了Github的账号
3.将本地的Git和github账号绑定
git config --global user.name "用户名" git config --global user.email "邮箱地址"
4.生成了本地的SSHKey并与github相配置(博客)
ssh-keygen -t rsa -C [email protected]
使用本地Git Bash管理项目:
1.点击github首页的 New repository 按钮创建空项目
2.在项目根目录打开 Git Base Here,输入:
git init
此时,项目中会生成 .git 隐藏文件夹。
3.继续在控制台输入:
git remote add origin https://github.com/xaioheilj/SpringBoottest1.git
手动输入的命令主要是
git remote add origin
,后面地址为创建的项目生成地址(Clone or download )中,这一步是git添加远程库有可能出现如下的错误,
怎么解决?
只要两步:
先删除
1
$ git remote rm origin
再次执行添加就可以了。
4.远程仓库合并到本地仓库
git pull --rebase origin master
执行git pull –rebase有可能报错误如下:
error: Cannot pull with rebase: You have unstaged changes.
error: Additionally, your index contains uncommitted changes.原因:如果有未提交的更改,是不能git pull的
解决:先执行git stash,再执行git pull –rebase,最后再执行git stash pop
git stash #可用来暂存当前正在进行的工作
git stash pop #从Git栈中读取最近一次保存的内容5.顺序执行以下三条命令
git add .
add . 表示添加全部已更改的文档,也可以单独选择文档,例如:
git add README.md
git commit -m "first day code"
双引号中内容是本次的提交说明,类似记录小标题
git push -u origin master
这一步就可以把本地文件推送到 github 中
6.常用:
//非常常用 git init:本地项目初始化 git add:编辑区添加暂存区 git commit:暂存区提交到分支 git push:同步到远程仓库 git remote:创建远程主机名 git clone:克隆项目到本地 git pull:拉取项目代码 git branch:查看分支 git branch name:创建分支 git checkout:切换分支 git merge:合并分支 git log:查看历史版本 git reset:回复版本 git reflog:查看命令记录 git init // 初始化 在工作路径上创建主分支 git clone 地址 // 克隆远程仓库 git clone -b 分支名 地址 // 克隆分支的代码到本地 git status // 查看状态 git add 文件名 // 将某个文件存入暂存区 git add b c //把b和c存入暂存区 git add . // 将所有文件提交到暂存区 git add -p 文件名 // 一个文件分多次提交 git stash -u -k // 提交部分文件内容 到仓库 例如本地有3个文件 a b c 只想提交a b到远程仓库 git add a b 然后 git stash -u -k 再然后git commit -m "备注信息" 然后再push push之后 git stash pop 把之前放入堆栈的c拿出来 继续下一波操作 git commit -m "提交的备注信息" // 提交到仓库 若已经有若干文件放入仓库,再次提交可以不用git add和git commit -m "备注信息" 这2步, 直接用 git commit -am "备注信息" // 将内容放至仓库 也可用git commit -a -m "备注信息" * git commit中的备注信息尽量完善 养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容" git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short // 获取git log里的树形详细信息 包括hasg 日期 提交信息 提交人等 git log --oneline //拉出所有提交信息 q是退出 git log -5 // 查看前5次的提交记录 git log --oneline -5 // 打印出的日志里面只有哈希值和修改的内容备注 git log 文件名 // 查看该文件的提交 git log --grep // 想过滤看到的内容 过滤日志 git log -n // 查看近期提交的n条信息内容 git log -p // 查看详细提交记录 git commit --amend -m "提交信息" // 回撤上一次提交并与本次工作区一起提交 git reset HEAD~2 --hard // 回撤2步 git reset --files // 从仓库回撤到暂存区 git reset HEAD // 回撤暂存区内容到工作目录 git reset HEAD --soft 回撤提交到暂存区 git reset HEAD --hard // 回撤提交 放弃变更 (慎用) git reset HEAD^ // 回撤仓库最后一次提交 git reset --hard commitid // 回撤到该次提交id的位置 git push -f -u origin 分支名 所有内容都回撤完了 将回撤后的操作强制推送到远程分支 git branch 分支名 // 新建分支 git branch // 查看当前所有分支 git checkout 分支名 // 检出分支 git checkout -b 分支名 // 创建并切换分支 git checkout commitId 文件名(文件路径下的文件名) 还原这个文件到对应的commitId的版本 (例如src/page/attendance/attendanceSum.vue我想把它还原到2个版本之前 首先git log src/page/attendance/attendanceSum.vue找到对应想要还原的版本 复制版本提交的commitID 然后执行git checkout commitID src/page/attendance/attendanceSum.vue 这样就把attendanceSum.vue这个单个文件 还原到了对应版本) git branch -v // 查看分支以及提交hash值和commit信息 git merge 分支名 // 把该分支的内容合并到现有分支上 git branch -d 分支名 // 删除分支 git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会 git branch -m 旧分支名 新分支名 // 修改分支名 git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用) git branch -r // 列出远程分支(远程所有分支名) git branch -a // 查看远程分支(列出远程分支以及本地分支名) git fetch // 更新remote索引 git push -u origin 分支名 // 将本地分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 也可解决 git建立远程分支关联时出现fatal ... upstram的问题
IDEA使用Git:
1.Files->settings->Version Control->Git->Path to Git executable: 设置为本地安装的Git的bin目录下的git.exe
2.Files->settings->Version Control->GitHub->Create API Token:为github设置账号密码
3.登陆github.com,然后点击右上角账号左边的加号,点击New repository创建仓库
4.VCS->import into Version Control->Create Git Repository->本地项目仓库地址
5.右键项目->Git->Add
6.右键项目->Git->Commit Directory,在Commit Message 输入一些提交信息, 然后点击 Commit And Push
7.点击Define remote,并输入在github创建的仓库地址
8.提交改动:CTRL+K,就会弹出提交的界面,点击Commit and Push
9.更新:Ctrl+T,就会弹出更新的界面,点击OK即可
10.IDEA中使用Git进行指定版本回退:博客,当本地代码已经回退到oldVersion,这时候如果直接push到远程仓库,会提示版本冲突,点击“cancel”取消。 推荐使用其中的方法二解决!!
本地项目的处理:
在 .gitignore 中设置无需上传的文件,例如 node_modules 这个文件夹占用空间大,而且其他人下载项目后可以自行安装这个文件夹中的包。
因此,我们在 .gitignore 中写入 node_modules/,Git就知道跳过这个文件啦。
README.md 是项目的说明文档,当你在 github 中新建项目时可以选择生成这个文件。
此外,还可以在项目中提前加入 LICENSE 文件,也就是许可证文件(为了后面演示 pull 我本次未提前添加此文件)。
具体选择哪种 LICENSE 看个人需求,想了解详情可以网上搜索,引入阮一峰老师的一张图做参考。