git-学习笔记(黑马)
工作目录(平时写代码的地方) ---》 暂存区(临时存放被修改的文件) ---》 git仓库(用于存放提交记录)
git的使用
1. git使用前配置(运行下面的命令,全局生效)
在使用git前,需要告诉git你是谁,在向git仓库中提交时需要用到;
1. 配置提交人姓名:git config --global user.name 提交人姓名
2. 配置提交人姓名:git config --global user.email 提交人邮箱
3. 查看git配置信息:git config --list
注意:
1. 如果要对配置信息进行修改,重复上述命令即可
2. 配置只需要执行一次;
git的用户名配置文件位置
C:\Users\sky\.gitconfig
提交步骤
1. git init (初始化git仓库)
2. git status (查看文件状态)
3. git add 文件列表 (添加文件给git管理);
4. git commit -m 提交信息 (向仓库中提交代码)
5. git log (查看提交记录)
恢复仓库的提交到工作区中
git reset --hard commitID (将git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作区目录)
撤销
用暂存区中的文件覆盖工作目录中的文件: git checkout 文件(test.txt); git restore 文件(text.txt)(这个也是用暂存区的文件覆盖工作区的)
将文件从暂存区中删除:git rm --cached 文件
将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git rest --hard commitID
A --> B ---> --> C ---> D 提交了4次到仓库
现在恢复到B,在恢复到B的同时也会把C和D的提交记录删除掉,但是提交文件还在仓库中只要你还有commitID的就可以把它还原
分支
分支细分
1. 主分支(master):第一次向git仓库提交更新记录是自动产生的一个分支
2. 开发分支(develop): 作为开发的分支,基于master分支创建
分支命令
git branch (查看分支)(处于当前分支的话,字体颜色是绿色,并且字前面有个一个星星)
git branch 分支名称 (这个是基于某个分支的基础下创建分支,也可以理解为一个副本)
git checkout 分支名称 (切换分支)(切换分支之前一定把当前的分支的内容提交到仓库,不然会出现污染的其他分支的;如果忘了的话,立马切换回去提交后再切换到其他分支)
git merge 来源分支 (合并分支)(一定要在主分支下合并其他分支)
git branch -d 分支名称 (删除分支)(分支被合并后才允许删除)(-D 强制删除)
暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作;
使用场景:分支临时切换(这个功能是独立于分支的,如果你在主分支上使用这个命令git stash,在其他分支也会还原回来git stash pop,所以要搞清楚你是在哪个分支使用的)
要先把你改动的文件添加到 暂存区 中才有用
存储临时改动:git stash
恢复改动:git stash pop
远程仓库
GitHub
多人协作开发流程
A在自己的计算机中创建本地仓库
A在GitHub中创建远程仓库
A将本地仓库推送(push)到远程仓库
B克隆(clone)远程仓库当本地进行开发(一次克隆就行了)
B将本地仓库中开发的内容推送(push)到远程仓库
A将远程仓库中的最新内容拉取(pull)自己本地
A将本地仓库中开发的内容推送(push)到远程仓库
B将远程仓库中的最新内容拉取(pull)自己本地
A本地仓库 --- -- push -----》 远程仓库 -----》 clone -----》 B本地仓库
A本地仓库 《---- pull --- 远程仓库 《------ push 《------ B本地仓库
如何推送本地仓库到远程仓库
1. git push 远程仓库地址 分支名称
git push https://gitee.com/jyjyjy28/git-demo.git master
2. git remote add 远程仓库地址别名 远程仓库地址
git remote add origin https://gitee.com/jyjyjy28/git-demo.git
3. git push 远程仓库地址别名 分支名称
git push origin master
4. git push -u 远程仓库地址别名 分支名称---(个人不建议用这个命令)
-u 记住推送地址及分支,下次推送只要输入git push 即可
克隆仓库
克隆远端数据仓库到本地:git clone 仓库地址
拉取远程仓库中最新的版本
git pull 远程仓库地址 分支名称
解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突;
只有第一个修改的人能向远程推送本地仓库,第二个修改的人不能提交了;
例如1:A修改了第三行并提交了;B也修改第三行并提交会无法提交;
这时候B要拉取(pull)远程仓库版本下来并且解决冲突后,然后 git add test.txt; git commit -m 解决冲突;
最后再提交到远程仓库
例如2:A修改了第4行并提交到远程仓库;B也修改了第4行但是没有提交,然后B想要拉取远程仓库的内容,由于B修改了
第4行会有冲突,并且没有提交到本地仓库,没有记录,所以git不允许你拉取因为害怕会覆盖掉你本地的内容,
所以你要把你修改的变动提交到本地仓库作为一个记录后才能正常拉取和解决冲突;最后再提交
解决冲突02-非团队合作,提交代码审核
。。。
git忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件;
git忽略清单文件名称: .git
在根目录创建一个被git忽略的文件:.gitignore
将工作目录中的文件全部添加到暂存区中: git add .
为仓库做详细说明
在根目录创建一个文件readme.md

浙公网安备 33010602011771号