一, 安装git之后先配置用户信息
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
二, 建立git版本仓库
方法一:执行git init 初始化一个版本仓库
$ git init;
方法二:克隆现有的仓库
git clone ‘地址’
git add . 添加所有文件到暂存区
git add 文件名 添加部分文件到暂存区
git commit -m '描述文字' 提交暂存区的内容
git log --pretty=oneline 查看提交历史
git reset --hard 版本号 回退到某一个版本
git remote -v 查看远程仓库地址
git branch -al查看所有分支
git branch -v 查看每一个分支最后一次提交的哈希值
git remote add origin '远程仓库地址' 添加远程仓库地址
git push origin 远程分支地址 推送代码到远程仓库分支上面
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联 ( 如果建立关联失败,可以试试这条语句git branch --set-upstream-to=origin/dev dev )
分支操作
git branch 分支名字 新建分支
git branch -d 分支名字 删除本地分支
git branch -D <branchname>:强制删除本地分支
git push origin --delete 分支名 删除远程分支
撤销add 操作?
git reset HEAD 文件名 撤销已经放在暂存区的某一个文件
对文件做了修改,此时不想要里面的修改了?
git checkout -- 文件名
关于多人协作开发流程
1.从远程的仓库clone下来项目
2.一般默认会有一个master分支
3.我们新加任务就会新建一个newBranch分支
git branch newBranch
4.在新分支上任务完成之后,执行
git add <fileName>
git commit -m '描述文字'
5.切换到master分支
git checkout master
6.把在newBranch上新增的任务添加到master主分支上
git merge newBranch
代码提交产生冲突
产生冲突的原因:
两个不同的分支同是修改了同一个文件,例如有三个分支 master, dev1, dev2
项目中有个a文件, 分支dev1 和分支dev2都修改了这个文件,在master上合并代码的时候就会发生冲突
git merge dev1
git merge dev2
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190626170410193.png)
用 ‘================’ 来表示上下不同分支提交的内容
然后比较两次提交的内容,手动在文件夹里修改,然后再提交master上的内容
多人协作git提交代码
远程上一般会有master 和 dev 分支 ,也可能会有每个人自己的分支,
master 和 dev 这两个分支是一定会有的,master分支是项目发布的代码,这个一般不会轻易动,只有在需要发布办版本的时候,更新这个分支上的代码,dev上是团队提交代码到这个分支,这个分支没有问题了再合并到master分支上,我们clone到本地,默认会有一个master分支,我们本地新建一个dev分支,修改dev分支上的代码,操作顺序
提交到远程的dev分支
git add .
git commit -m '提交描述文字'
git pull origin dev (执行push之前先执行pull, 目的是为了和远程的那一个分支关联,注:git branch --set-upstream develop origin/develop 这种方式关联的我不知道是啥意思,有大神路过懂的话,请留言告知,谢谢)
git push
提交到master分支的话可以这样操作
git add .
git commit -m '提交描述文字'
git pull origin master
git push
git fetch 和git pull 的差别
1.git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:
git fetch origin master //将远程仓库的master分支下载到本地当前branch中
git log -p master ..origin/master //比较本地的master分支和origin/master分支的差别
git merge origin/master //进行合并
也可以用以下指令:
git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支
git diff tmp //將當前分支和tmp進行對比
git merge tmp //合并tmp分支到当前分支
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
在实际使用中,git fetch更安全一些