设置用户(目的在于可以在远端看到是谁提交了内容,更方便公司的管理)
1、设置全局用户(在家路径下创建用户,每个项目都用这一个用户)>: git config --global user.name 'manba '>: git config --global user.email 'manba@163.com'
2、设置局部用户(局部是指在某个项目下创建用户,可以在不同项目下创建不同用户)>: git config user.name 'manba '>: git config user.email 'manba@163.com'初始化仓库,让git接管你的项目
git init查看有什么文件
ll查看仓库状态
git status-红色:新建,修改,删除,在工作区没有放到暂存区-绿色:放到暂存区,没有提交到版本库-没有东西:说明所有变更都被版本管理起来了将当前路径下的所有变更提交到暂存区
git add 删除文件
git rm --cached hello.txt 将暂存区的内容提交到版本库
git commit -m "THIS IS MY CODE" HELLO.txt 打印此文件
cat hello.txt在git里面修改
vim hello.txt
进入io界面
//注意老师用的是vim学生阶段不推荐学习vim因为vim学习成本高,
学习很长时间才能看到正面反馈,显然这对于学生来说是不好的,
要找到工作在学不迟,学生阶段不用琢磨这个//
点一下键盘i,修改内容
vi后输入i表示进入编辑模式,输入完毕后按esc键退出编辑模式,
输入“:wq”表示保存并推出,都是linux的基本操作,可以先去学习Linux查看版本管理日志
git log # 显示作者,版本号,注释
git reflog # 显示精简信息(版本切换也会显示)版本穿梭
撤销版本库提交,回到原有的版本当中去
git reset --hard 版本号撤销工作区操作
git checkout .撤销暂存区操作
git reset .
git分支操作
类似于副本的东西,但是不是仅在工作区进行修改后,切换到其他分支,在返回该分支后可能会出现异常,建议修改后及时上传暂存区、本地库查看分支
git branch -v
创建分支
git branch 分支名字
切换分支
git checkout 分支名字合并分支
git merge 要合并的分支名字
冲突的合并分支
即代码有两套不同的分支
此时合并失败了,需要手动合并代码
master 和 fix-hot 在同一个版本的基础上都进行了修改,merge就是新的覆盖旧的,此时相对基础版本都是新的,git不知道哪个是新,哪个是旧
在vim中手动进行操作,然后进行一下add
在提交本地库中,将要
git commmit -m "merge text"
不要加名字!/
总结:合并不冲突是因为,hotfix复制了master后master没有再次修改,所以合并时直接覆盖。而冲突是hotfix复制后,master和hotfix都修改了,所以冲突
团队内协作和跨团队协作
邀请加入团队
setting ->Manage access ->invite collaborotor
把邀请函密钥复制下来,发给B
B在浏览器里打开该网站,按照提示操作即可
其他人打开你的github库,可以在线修改代码。
github的使用
远程库的名字一般和本地的是一样的
他人对于github的远程库,点击fork,操作进行pull request
本人就会收到 pull request,审核后即可merge pull request
git remote -v
查看当前所有远程地址别名git remote add git-demo URL
添加地址别名git push 别名 分支名
推送文件向github服务器
现在github要用ssh关联上终端然后用令牌登陆就可以push上去了。
原因如下:如果ssl证书未经过机构认证。会认为未知的没有签署过的证书意味着可能存在很大的风险。
2021年8月13日起,Github不再支持使用密码push!老师这个push方法过时了
第一次push 需要加 -u 完整命令 git push -u 别名 master ,自己git 登录的浏览器一定要和认证打开的浏览器是同一个,一直超时,连接手机热点,再上传 看看就好
记得删除凭据管理器的凭据
拉取远程github库
git pull git-demo master任意拉取一个库
git clone URL
//克隆是本地没有时用的,拉取是本地已经有了的时候用的//
clone会干三件事,1,拉取代码2.初始化本地库3.创建别名
ssh的使用
在C盘里面用户下有.ssh的文件夹,使用以下的命令生成
ssh-keygen -t rsa -C XXXX@163.com
//然后敲三次回车
加密算法可以使用 Ed25519,一般只要不是太旧的机器都支持,比rsa好
打开rsa.pub就是你的私钥
pull是拉取,针对的我已经有本地仓库,但是和远程库数据不同步的情况,克隆是连本地库都没有,直接从远程库copy一份到本地当作本地库
idea的使用
需要忽略一些没有必要的东西
在用户文件夹下,新建一个git.ignore,忽略什么就 *.什么
下面是对IJ的样例文件
# Compiled class file
*.class# Log file
*.log# BlueJ files
*.ctxt# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
I
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid*.classpath
.project
.settings target
.idea
*.iml
对于gitconfig文件,可以变成
[user]name = Layneemail=Layne@atguigu.com
[core]excludesfile = C:/Users/asus/git.ignore
//windows是反斜线
在你的idea里面,setting-> version control ->选择自己所在文件里面的git.exe
VCS里面create git resposbility
右键文件,git--->add
idea的切换版本
这里不需要add了吧,idea貌似暂存区概念很弱,追踪后默认就是commit -a的
可以点击那个双向箭头(Show Diff)对比显示修改的代码
idea的下角有version control -》log可以看到版本迭代
右键版本,点击checkout即可
idea的使用分支
右键文件---》git----》----》repository---》Branches-----》new branch
或者idea下角有 git:master,点击即可
idea合并分支
marge into current
有冲突的时候:会出现merge,手动更改一下