git基本操作

多人协作2

参考:https://blog.csdn.net/sculpta/article/details/104448310

先将远程仓库克隆下来

$ git clone https://github.com/member_b/project.git


//一种加快的方法
//这是我们要clone的
git clone https://github.com/Hackergeek/architecture-samples
 
//使用镜像
git clone https://github.com.cnpmjs.org/Hackergeek/architecture-samples
 
//或者
 
//使用镜像
git clone https://git.sdut.me/Hackergeek/architecture-samples

进入文件夹,然后git init

添加主仓到远程仓库地址

$ git remote add upstream https://github.com/captain/project.git

查看当前仓库所连接的远程仓库

$ git remote -v
origin    https://github.com/member_b/project.git (fetch)
origin    https://github.com/member_b/project.git (push)
upstream    https://github.com/captain/project.git (fetch)
upstream    https://github.com/captain/project.git (push)

拉取主仓文件

$ git fetch upstream

切换到master分支

$ git checkout master

合并

$ git merge upstream/master

至此,新版本的项目文件已经更新到了 master 分支,下一步需要将它合并到 dev 分支,以便后续在 dev 分支上开发

如未创建 dev 分支,则创建并切换

$ git checkout -b dev

合并

$ git merge master

然后可以开始你的修改了

修改后,在你的dev分支下,add commit push后

$ git add -A                    添加所有修改
$ git commit -m "备注"
$ git push

如果push后有错误,则复制最后一句

$ git push --set-upstream origin dev

此时已经上传,但未合并到master

$ git switch master     回到master分支
$ git merge dev         合并到master
$ git push

最后就是创建者同意你的修改~

本地基本操作

创建空仓库

$ git init

将文件放入暂存区

$ git add 文件名

将暂存区的内容放入分支,“内容”为备注

 $ git commit -m "内容"

查看仓库的当前状态

$ git status

查看该文件的不同

$ git log
$ git diff 文件名

显示从最近到最远的提交日志

$ git log

版本回退

退回上一个版本,上上个版本是HEAD^^,上一百个是HEAD~100

$ git reset --hard HEAD^

查看该文件的内容

$ cat readme.txt

查看现在版本库的状态

$ git log

记录你的每一次命令

$ git reflog

回到未来的版本

$ git reset --hard 前几位版本号(系统会自动补齐

撤销修改

丢弃工作区的修改

$ git checkout -- 被修改的文件名

撤销暂存区的修改,重新放回工作区(继续返回需要再进行checkout操作

$ git reset HEAD 文件名

删除文件

工作区删除后,将版本库中的文件也删除

$ git rm 文件名

将误删的文件从版本库里找回

$ git checkout -- 误删的文件名

添加到远程仓库

将本地仓库与你的远程仓库关联

$ git remote add origin 远程仓库的SSH或HTTPS

把本地库的所有内容推送到远程库上(第一次提交所以要用-u)

$ git push -u origin master

从远程库克隆

将远程库数据克隆到本地

$ git clone 远程仓库的SSH或HTTPS

分支

创建(dev)分支,并切换到分支上(switch可替换为checkout,同时-c需要变为-b

$ git switch -c dev

相当于以下两条命令

$ git branch dev            创建dev分支
$ git switch dev            切换到dev分支上

查看当前分支,会显示所有分支,*表示当前分支

$ git branch

合并指定分支到当前分支上,将dev合并需要先切换回master分支上($ git switch master)

$ git merge dev

合并后就可以放心删除啦

$ git branch -d dev

查看分支合并图

$ git log --graph --pretty=oneline --abbrev-commit

ps:如果分支合并出现冲突,需要手动修改后进行提交

合并(dev)分支时,禁用Fast forward模式,该模式删除分支后,会丢掉分支信息

这时,合并的时候要创建一个新的commit,所以加上-m参数,把commit描述写进去

合并指定分支到当前分支上

$ git merge --no-ff -m "备注" dev

将当前工作区储存

$ git stash

查看存储的工作现场

$ git stash list

恢复同时删除stash内容

$ git stash pop

可以分为两步

$ git stash apply    恢复
$ git stash drop     删除stash内容

恢复指定stash需要先用list查看

$ git stash apply stash@{0}

复制一个特定的提交到当前分支

$ git cherry-pick 编号

强行删除分支

$ git branch -D 分支名

多人协作

查看远程库信息,加上-v查看更详细的信息

$ git remote -v

推送分支

$ git push origin 分支名

如果你需要在别人的(dev)分支上修改,需要创建远程origin的分支到本地

$ git checkout -b dev origin/dev

修改后推送,如果推送失败,可能是已经进行了修改

需要将最新的origin/dev抓下来,然后在本地进行合并,解决冲突后再进行合并

$ git pull

若抓取失败,在本地创建和远程分支对应的分支

$ git checkout -b branch-name origin/branch-name

建立本地分支和远程分支的关联

$ git branch --set-upstream branch-name origin/branch-name

再pull,抓取成功后,合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push

把本地未push的分叉提交历史整理成直线

$ git rebase

标签管理

切换到需要加标签的分支上,添加标签

$ git tag v1.0
$ git tag v0.9 commit的id    

查看标签,标签按照字母顺序排序

$ git tag

查看标签信息

$ git show v0.9

创建带说明的标签

$ git tag -a 标签名 -m "说明文字" commit的id

删除标签

$ git tag -d v0.1

以上都是本地操作

将标签推送到远程

$ git push origin v1.0
$ git push origin --tags     推送所有标签

删除远程的标签

$ git tag -d v0.9                           先删除本地的
$ git push origin :refs/tags/v0.9           再删除远程的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值