一、新入职公司的工作准备
1.初始化用户信息
git config --global user.name "zhangsan"
git config --global user.email zhangsan@example.com
2.初始化本地库
git init
3.初始化秘钥
git bash 执行命令,生命公钥和私钥
命令: ssh-keygen -t rsa
直接三个回车
把公钥上传到服务器端(登录公司的gitlab)
4.克隆公司项目
功能:从远程版本库下载代码
语法:git clone <网址>
$ git clone ssh://git@192.168.1.1:22/home/git/e3.git
二、工作常用命令
1.文件提交
①添加暂存
$ git add . (全部)
$ git add main.java (指定文件)
②提交本地
$ git commit -m "1st" //提交代码到本地仓库
③从远程更新
$ git pull
④提交远程
$ git push
⑤显示有变更的文件
git status
⑥查看该文件每次提交记录
git log
2.查看初始化信息
git config --list
3.分支操作
①查看分支
git branch -a
git branch 没有参数,则显示本地库中所有本地分支的名称
②切换指定分支
git checkout [branchName]
③创建分支并提交到远程
创建分支并提交远程仓库
git branch test 创建本地分支
git push origin test 把分支提交到远程仓库
git branch -d test 删除本地分支
git checkout test 切换到远程test分支
④合并分支
创建 merge requst
如果有冲突 解决冲突 点resolve conflicts
解决冲突并提交
接受Mergerequest
注:
开发过程中,所在分支如需其他分支的提交,可以合并其他分支到当前分支
将dev合并到zh
4.解决冲突
①放弃本地修改
②取消add
git reset HEAD <fileName>
③取消commit
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
④未add的文件,暂存
如果在分支1做了开发未提交,发现应该提到分支2才对,可以用这种方式解决
1、git stash
备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容
2、git pull 或者做其他的工作
3、git stash pop
从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。。获取之后,会删除栈中对应的stash。。
由于可能会stash多次,git使用栈管理,我们可以使用git stash list查看所有的stash
git stash list
显示git栈中的所有工作区内容的备份,
比如使用git stash apply stash@{1},就可以把版本号为stash@{1}的备份取出,不会删除对应的stash。。0为最新版本
git stash clear
清空git栈