目录内容:
目录
目录
一、工作区 git add ----> 暂存区 git commit ------> 本地仓库
git多人协作开发:
同一团队
如果有代码权限,针对代码托管中心的拉取提交流程:
跨团队开发
命令行:
一、工作区 git add ----> 暂存区 git commit ------> 本地仓库
1、git init 初始化一个git本地仓库,生成 .git 文件夹。rm -f .git 取消git初始化。
2、git status 追踪修改过的文件的状态(是否提交)
3、git add <file> 或 git add . 提交修改的某一文件(多文件用空格)/全部文件
4、git rm -f <file> 删除暂存区
或分支
的文件, 同时工作区也不需要这个文件了
5、git rm --cached <file> 删除暂存区
或分支
的文件,回退到工作区(相当于add的回退)
6、git commit -m "注释信息" <file> / git commit -a或-am "注释信息"
对于已跟踪文件,-a可以省去add的操作
二、查看提交日志,回退指定版本,比较文件差异
日志:
1、git log
2、git log --pretty=oneline/--oneline
3、git reflog
回退:
git reset --hard <commit号>
git push origin HEAD --force
如果没有commit到本地仓库,仅仅add到暂存区,使用:
git reset --hard HEAD
比较文件差异:
git diff <file> file名可加可不加,比较工作区和暂存区
git diff HEAD <file> 比较工作区和本地库
三、分支操作,本地仓库
1、git branch <branch name> 创建分支
2、git branch -v 查看分支
3、git checkout <branch name> 切换分支
4、git checkout <branch name> 切换到被合并到的版本,
git merge <branch name> 将指定版本合并过来,
5、git checkout -b 本地分支名 origin/远程分支名 拉取远程指定分支到本地
如git checkout master主分支,然后git merge hot_fix 将hot_fix的分支内容合并到主分支。
切换分支时工作区内容提交到哪个分支的本地库,就是哪个分支做出了修改。
git merge 时,如果发生了冲突,需要手动解决冲突。(本地冲突)
eg: 将debugDouyin分支内容合并到主分支master
此时在master分支可以看到冲突内容,互相沟通,解决冲突。
沟通解决后,git status,可以看到还有未merge的内容,此时需要通过git add来标记冲突已解决。
git add <file>后,再git status,文件已经成功合并。
最后根据提示,git commit -m "注释信息"来完成本次合并,通过git status或git log即可查看合并结果。(如果忘记注释信息,需要进入编辑注释信息的过程,百度一下linux命令行使用即可)
四、远程仓库
关联仓库:
git remote -v 查看关联的远程仓库
git remote add <origin-store> ssh/http 通过ssh密钥或http路径,关联远程仓库。
<oring-store> 是给远程仓库起的名字,一般叫origin,此处为了突出这是我们自己起的,叫myOriginStore。
git remote rm <origin-store> 解除关联的远程仓库
eg:此时再 git remote -v即可查看关联的仓库
推送和克隆:
1、推送
git push <origin-store> <branch-name> 推送到指定仓库的指定分支上
eg:推送到myOriginStore上的mater分支,如果没有,就创建。
2、克隆
git clone <path>
此时如果远程仓库做出修改,本地想要拉取远程仓库内容 :
git fetch <origin-store> <branch-name> 抓取远程分支内容,此时本地内容并没有改变。
可以git checkout <origin-store>/<branch-name>,切换到修改的分支,查看改变的内容
git merge <origin-store>/<branch-name>,合并修改内容
当本地修改了,而别人提前提交代码到远程仓库时,这边没法推送代码,有了代码冲突。
也没办法拉取最新代码,此时通过git status查看冲突代码,手动解决冲突即可。
五、git打tag
六、分支签出与关联
我在本地建了一个分支znn,开发完之后,提交代码
git add .
git commit -m '注释'
git push
出现下面的问题,这个意思是:当前分支没有与远程分支关联。
因此导致了提交代码失败。
MacBook-Pro-5:web-crm znn$ git push
fatal: The current branch znn has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin znn
解决方案:
(1)直接 git push origin znn 推向制定的分支,最强暴的方法。
(2)正如上面所说关联远程分支。
git push --set-upstream origin znn
origin 是默认的远程版本库名称
这样关联有一个好处,以后就不用每次git push都用第(1)种方法。
git checkout -b <newBranch> origin/<newBranch> //创建一个新分支拉取制定的远程分支
git push --set-upstream origin <newBranch>。. //本地创建新分支,提交到远程并关联