1.git有四个区,分为工作区,缓存区,本地仓库和远程仓库。
2.gitignore是用来忽略不用提交的文件的。但是这样切了分支就没了。
3.git的操作一般包括团队内协作和跨团队协作。
4.团队内协作的一般流程是A写了代码,push到远程库,B将其clone下来到自己的本地库,改完在push 到远程,主要用到clone push pull等。
5.跨团队协作的一般流程是A团队写了之后push到远程库,B团队forkA团队的远程库,则在自己的远程库里有了一份,然后clone到本地进行修改,然后push到B自己的远程库中,然后发请求pull request给A团队,A审核通过之后mergeB团队的代码。
6.pull和clone的区别:pull是本地有代码的时候pull,clone是本地无代码的时候clone。clone时不需要输入账号密码,因为能下的代码是开源的。clone时会顺便初始化本地仓库。
7.使用ssh可以免密登录。
1.1 git init初始化本地仓库
1.2 git add .将所有文件加入缓存区
1.3 git commit -m ""将所有文件加入本地库
1.4 git commit --amend 更改上次commit的内容
1.5 git branch -a 查看本地和远程的所有分支
1.6 git branch -vv 查看本地和远程分支的跟踪关系
2.1 新建一个仓库
2.2 复制该仓库的HTPPS链接
3.1 git remote add origin httpsxxxxxx,本地库与远程库进行关联
如果已经添加公钥了的话,可以用git remote add origin git@xxxx,也同样可以进行关联,还省去登录
3.2 上传到代码仓库
git push origin <本地分支名称>: <远程仓库名称>
git push origin bl: br // 把本地的bl分支上传到远程的br分支
git push HEAD:br // 把本地的当前分支上传到远程的br分支
git push bl // 如果远程仓库名称和本地分支名称一样,就可以省略: <远程仓库名称>
3.3 git remote set-url origin [email protected] 使用ssh的方式关联远程仓库
新建或修改追踪的远程分支:
git branch --set-upstream-to=origin/br bl //把远程仓库的br分支和本地的bl分支建立追踪关系
git push -u <远程仓库> <本地分支>
git push -u origin bl // 把远程仓库的bl分支和本地的bl分支建立追踪关系
git checkout -b <本地分支> <远程仓库>/<远程分支>
git checkout -b newb origin/bl // 新建本地分支,并关联bl远程分支
当开发分支开发完毕后,需要将其合并到master分支。
1.首先将开发分支的内容提交到版本库:
git add *
git commit -m "comment"
2.切换到master分支
git checkout master
3.进行合并
git merge dev
这时如果在同一处出现冲突,如下所示,那么就需要手动进行调节。
3.1 Accept Current Change,即保留master分支的内容
3.2 Accept Incoming Change,保留dev分支的内容
3.3 Accept Both Change,同时保留两个分支的内容
3.4 Compare Changes,用只读模式进行对比
<<<<< HEAD下面是master的内容
====下面是dev分支的内容
做完选择后,按Ctrl+S进行保存。
当开发分支开发完毕后,需要将其合并到master分支。
但是远程仓库的分支合并与本地分支的合并不一样
1.点击上栏的Pull Request,在新页点击右侧的新建Pull Request。
2.在创建Pull Request页中
如果还没有远程仓库,就创建一个,并且要注意勾选如下的, 同时复制你的git仓库的https链接。
如果没有初始化,就先初始化一下:git init
如果没有告知你是谁,就先告知一下:
git config --global user.name "xx"
git config --global user.email "xx"
然后和远程仓库链接:
git remote add origin xxxx.git
最后就可以下拉master分支的内容了:
git pull <远程仓库> <远程分支> : <本地分支> // 如果本地分支就是当前分支,就可以省略
git pull origin br: bl // 把远程的br和本地的bl合并
git pull origin master // 把master分支拉到本地当前分支
当我们和其他人一起共同操作同一个分支,修改了同一处时,若其他人push到远程仓库后,我们无法直接push,在Gitkraken上会报:“Please fetch origin before pushing.”。
1.首先输入git pull,将远程仓库拉到本地,此时就会有冲突。
2.打开冲突的文档,其中标注好了<<<
1.首先点击Pull,此时会报错:“A file conflict was found when attempting to merge into HEAD”
2.点击右侧栏中冲突的文档名,进入修改界面。修改界面中左侧是其他人改的,右侧是自己改的。通过点击每一行前面的+/-,来确认是否包含这一行。
3.点击右上角的save,就退出了修改界面。
4.在右侧栏中点击continue rebase,即解决了冲突。
1.stage all changes = git add
2.commit = git commit
3.push = git push
在改完代码之后,关闭该文档,在source control栏会冒出一个数字,点进去之后,在changes下面点+,即stage changes,就是相当于git add,加入到了缓存区。
然后点击source control栏上的对勾,然后让你输入commit,输入完关闭即可,即完成commit。
git提交的时候会生成哈希串,可以取其长串%H或者短串%h
https://www.cnblogs.com/bellkosmos/p/5923439.html