配置全局name和email 生成秘钥:
- git config --global user.name "<yourName>"
- git config --global user.email "yourEmail@example.com"
- ssh-keygen -t rsa -C "起个名字作为标识"
- git 中拷贝公钥文件(id_rsa.pub)中的信息到 gitlab ssh设置中
- 设置提交环境别名 .gitconfig
文件下添加 [includeIf "gitdir:E:/HbuilderProjects/WorkProjects/"]
path =.gitconfig_my
同目录创建.gitconfig_my
[user]
name = DDY
email = 116@qq.com
这样的话 在E:/HbuilderProjects/WorkProjects目录提交git记录的名字就是DDY 其他情况名字是全局配置的
git命令
1. git branch
- git branch -a ==>查看本地和远程所有分支
- git branch <next> ==>新建分支:
- git branch -D <next> ==>删除分支
- git push <origin> --delete <next> 删除远程分支:
2. git merge
- git merge <next> ==>合并某个分支到当前分支下,并自动进行新的提交
- git merge --no-commit <next> ==>合并某个分支到当前分支下,不进行新的提交
3. git checkout
- git checkout <master> ==>切换到<master>分支的head版本
- git checkout <master> <file_name.txt> ==>放弃指定分支对file_name的修改
- git checkout -b <next> ==>在当前分支上创建新分支并将工作区设置为该分支上
4. git reset 不保留历史回退
- git log 可以查看提交历史,以便确定要回退到哪个版本
- git reflog 查看命令历史,以便确定要回到未来的哪个版本
- git reset <commit_id> ==>回退到指定某个版本
- git reset HEAD~n ==>向前回退多个版本:
- git reset [--mixed] HEAD~n ==>(默认方式)将版本库回退n个版本,将本地版本库的头指针全部重置到指定版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段
- git reset --soft HEAD~n ==>将版本库软回退n个版本,所谓软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区
- git reset --hard HEAD~n ==>将版本库回退n个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本
5. git revert 保留历史推进 ==> -n == (--no-commit)
A1 ---> A2 ---> A3 ---> A4 ---> A5 ---> A6
- git revert -n da1243fsfksfhsdkfhkdshff(版本号) ==>不会把版本往前回退,而是生成一个新的指定版本
- git revert --no-commit HEAD~3..HEAD ==>A1 ---> A2 ---> A3 ---> A4 ---> A5 ---> A6 ---> B 你的A4,A5,A6依然在历史里,新的B commit就是你revert掉A4,A5,A6之后的结果,其实就是A3的状态,但历史都保留了
git合并不同url的项目
- 使用命令git remote add [shortname] [url] ==> 将老Git url加到我们新Git的本地
- 使用命令git remote -v ==>查看远程仓库的情况 可以看三个远程仓库分别名为 gitoa_web、origin ...
- 使用命令git fetch gitoa_web ==>刷新远程仓库到本地 字符串 gitoa_web 指代对应的仓库地址了.
- 使用命令git merge gitoa_web/master ==>合并项目=> gitoa_web是指代仓库,master指代分支,当然如果有需要也可以合并别的分支过来
- 发现不同email地址错误不能成功提交 因为这个commit不是我的 ,把email地址更新成我的再提交就成功了
- git remote rm [shortname] ==>删除本地同步的shortname的仓库地址
由于git重新部署安装,数据丢失,需要从本地代码库恢复数据,处理方式:
- 找到gitlab上对应的项目组,创建要恢复的项目;
- 在本地仓库,执行git remote remove origin,删除原来的地址
- 在本地仓库,执行git remote add origin 新的地址 (新的地址在gitlab上查看下)
- 执行 git push -u origin 要恢复的分支名