git 在实际工作中的应用场景
1、如何把本地的项目上传到github中
首先在github中新建一个仓库,添加readme.md文件,然后生成一个项目,有一个地址比如(https://github.com/code-farmer008/test.git)
然后本地找一个文件夹,右键选择git bash here 把git命令行窗口打开,git clone 地址
这样把新建的远程项目从github中拉回到本地,把本地项目中使用的文件跟文件夹都复制到这个文件夹里。
接下来执行命令 git add . 把所有的文件都添加到暂存区,git commit -m "提交的信息" 这是提交的说明。
然后执行命令 git push origin master 这就是把本地的文件提交到远程的github仓库中。
2 、如何配置git的用户名、密码
git config --global user.name "code-farmer008"
git config --global user.email "unique0000*&01"
3、git status命令可以让我们时刻掌握仓库当前的状态
4、查看本地分支 : git branch
删除本地已合并的分支: git branch -D [branchname]
删除远程分支: git push origin --delete [branchname]
5、如何在分支上开发
git checkout -b [branchname] [remotebranchname] 基于某远程分支(develop)创建本地分支。
把新建的分支push到远端 git push origin [branchname]
关联 git branch --set-upstream-to=origin/[branchname] [branchname]
再次拉取验证 git pull origin [branchname] 就可以在新的分支上开发了
接下来就是在新建的本地分支上修改文件或者添加文件,然后git push origin [branchname]
将本地的修改更新推送到远程分支。
6、文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,没有add时用命令git checkout -- [filename]
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,已经add了,想丢弃修改,分两步,第一步用命令git reset HEAD [filename],就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard commit-id,不过前提是没有推送到远程库(查看commit-id方法是 git log)
7、删除文件
rm [filename]
如何恢复呢? git checkout -- [filename]
git rm [filename] 会把删除提交到暂存区,所以恢复文件需要两步,先使用命令git reset head [filename] 撤销暂存区操作,再使用命令git checkout -- [filename] 撤销工作区的删除即可。
8、多人分工
因此,多人协作的工作模式通常是这样:比如说张三跟李四都在修改dev分支上的yy.txt这个文件,张三先push到了远端,李四后push,那么对于李四来说就会发生冲突.
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;如果合并失败,记得将本地分支与远程分支关联。git branch --set-upstream-to=origin/[branchname] [branchname]
然后再 git pull。如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin [branchname]推送就能成功!
9、合并到master分支上冲突
git checkout -b dev
修改了 yy.txt文件
git add yy.txt
git commit -m ''
这个时候master分支上也修改了yy.txt文件,并且add、commit,那么在 git merge dev 时
也会出现冲突。解决办法,手动在dev 分支的工作区中修改文件,然后add 、commit
10、一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master