本笔记只适用于在码云或github上已创建了远程仓库,然后在本地clone,本地创建分支,修改,提交 至远程仓库 的一个快速的流程.具体操作请参考廖学峰git教程
1 git clone 克隆远程仓库
git clone https://gitee.com/xxxxx/xxxx.git
2 cd clone下来的目录
cd xxx
3 进去默认是在主分支(master)上,可以在主分支上操作,可以 创建其他分支并切换到该分支上进行操作
git checkout -b dev //创建并切换dev分支
4 git branch 可以查看当前分支
git branch //它会列出所有分支,当前分支前面会标一个*号
5 然后我们可以在该分支上做操作了 比如对readme.txt 做个修改之类的
hello world //在readme.txt 添了它
6 然后提交
git add readme.txt //git add告诉Git,把文件添加到仓库
git commit -m 'xxxxx' //git commit告诉Git,把文件提交到仓库 参数m后面是对本次提交的说明
7 现在分支工作完成了切换到主分支上
git checkout master
8 现在把dev分支的工作成果合并到master分支上
git merge dev //git merge命令用于合并指定分支到当前分支
// 合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的
9 合并完成后,就可以放心地删除dev分支了
git branch -d dev
10 然后就可以提交到远程仓库了
git push -u origin master //第一次提交使用该命令
git push origin master //不是第一次提交使用该命令
11 删除连接
git remote rm origin //删除远程连接
12 添加远程连接
git remote add origin url //url 远程地址
13 查看连接
git remote -v
14.远程仓库同步到本地仓库
git pull --rebase origin master
git push origin dev // 推送本地分支到远程
至此一个完整的流程就走完了,可以到远程仓库上查看是否有你提交的文件
在学习中也遇到了 多人协作 操作分支 提交到远程仓库的问题 不熟悉者很容易出错,但只要理解了就很简单, 具体细节请看廖雪峰git教程
- 显示从最近到最远的提交日志
git log
git log --graph // 分支合并图
16.版本回退
在Git中,用HEAD
表示当前版本,也就是最新的提交1094adb...
,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard HEAD^ //
git reset --hard 1094a // 回退到指定版本, 版本号是commit id,可以不用写全
- 查看命令历史
git reflog
18.查看状态
git status
- 查看工作区和版本库里面最新版本的区别
git diff HEAD -- readme.txt
- 工作区和暂存区
git add 前是工作区
git add 后是暂存区
- 丢弃工作区的修改
git checkout -- file
eg: git checkout -- readme.txt
- 创建并切换到新的
dev
分支
git switch -c dev
git switch master // 直接切换到master
- 隐藏“工作现场”(bug分支)
git stash
- 查看工作现场
git stash list
- 恢复工作现场
git stash apply // 不删除stash里的内容
git stash pop // 删除stash里的内容
- 复制分支
git cherry-pick <commit>
eg: git cherry-pick 4c805e2
- 强行删除
git branch -D <name> // 分支名
eg: git branch -D dev
28.多人协作工作模式
首先,可以试图用git push origin <branch-name>
推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull
试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>
推送就能成功!
如果git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
29.更新
git rebase // 类似于git pull
git pull
30.tag标签,主要用于发布版本管理
git tag // 默认显示所有标签
git tag -l [标签名]
git tag -n // 查看所有tag和说明
git ls-remote --tags // 查看远程所有tag
git show 标签名 // 查看标签内容
git tag 标签名 // 创建标签
git tag -a 标签名 -m 'xxxx' // 创建带注释的标签
git push origin 标签名 // 标签推送到远程
git push origin --tags // 推送所有标签到远程仓库
git tag -d 标签名 // 删除标签
git push origin --delete 标签名 // 删除远程标签
git checkout -b 分支名 标签名 // 新建分支检出
git checkout 标签名 // 切换标签
git tag -f 新标签名 旧标签名 // 修改标签名
git tag -d 旧标签名 // 删除旧有的标签名