git使用

Git版本库:


基本流程:(github上传文件基本流程)

1.touch README.md

2.git init

3.git add README.md

4.git commit -m "first commit"

//添加远程仓库

5.git remote add origin https://github.com/cmathx/learngit.git

//第一次推送本地文件到远程仓库,并将本地的master分支和远程的master分支关联起来,后续的推送命令只需要git push origin master

6.git push -u origin master

 

//修改情况审查

1.git status:查看仓库当前状态

2.git diff README.md:查看README.md的修改情况,查看工作区和当前情况的区别

3.git diff HEAD -- readme.md:查看工作区和版本库里最新版本的区别

 

//版本回退,撤销修改,删除文件

1.git log:查看commit提交记录,具体每次提交情况

2.git reset –hard HEAD^:回退到上一个版本的commit记录

3.git reflog:查看commit版本id号,以便于版本回退

4.git reset –hard commit_id:回退到某个指定的commit版本

5.git checkout –- readme.md:撤销修改,撤销修改回到暂存区状态(修改后未保存到暂存区)或者撤销修改回到和版本库一模一样的状态(已经添加到暂存区后又做了修改)  附:误删除文件后也可以通过这条命令恢复

6.rm readme.md

git rm readme.md:彻底删除readme.md

 

//分支管理

//创建和合并分支
1.查看分支:git branch
2.创建分支:git branch feature1
3.切换分支:git checkout feature1
4.创建+切换分支:git checkout -b feature1
5.合并某分支到当前分支:git merge feature1
6.删除分支:git branch -d feature1

 

//解决分支冲突
1.git merge feature1
如果存在冲突,会有conflict提示,有冲突的文件git会用“<<<<<<<=======>>>>>>>”标示出不同分支的内容
PS:通常合并分支,Git会用“Fast foeward”模式,但是这种模式删除分之后,会丢失分支信息
2.git merge –no-ff –m “merge no-ff” feature1
3.git log --graph --pretty=oneline --abbrev-commit
查看合并分支图
4. git log --pretty=oneline --abbrev-commit
查看所有的commit情况,没有图说明

 

//Bug分支:恢复现场
场景:现在有一个bug101需要修改,自然想法是创建一个issue-bug101进行修改bug;可是当前还在dev上工作,而且工作还未完成,我们不想进行commit一个版本,所以需要保存dev当前的工作现场,然后转而修复bug,而后再转向dev现场,恢复之前保存的dev工作现场,继续进行我们的工作。
1.git stash   存储当前工作现场
2.git status  此时查看文件,则工作区是干净的,因为git stash命令把工作现场保存起来了
3.git checkout master  切换回主分支
4.git checkout –b issue-bug101  创建新分支并切换到分支issue-bug101
5.git commit –am “fix bug 101”  修改提交新版本
6.git checkout master  切换回主分支
7.git merge –no-ff –m “merge bug fix 101” issue-bug101  将新分支修改的版本合并到主分支
8.git branch –d issue-bug101 删除分支issue-bug101
9.git checkout dev  切换回原本的工作分支dev
10.git stash list  查看保存的工作现场
11.恢复工作现场
11.1.git stash apply  恢复工作现场,但是stash(工作现场)内容并不删除
       git stash drop   删除stash内容
11.2.git stash pop   恢复现场并将stash内容删除
PSgit stash apply stash@{0}恢复指定的stash(工作现场)

 

//feature分支
现在需要添加一种新功能,所以我们新建了一个new_feature分支,并在上面进行添加我们所需要的feature,而后接到新的需求,不需要此项feature,所以我们此时不能将new_feature分支合并到主分支,然而我们还是需要将new_feature分支删除,此时git branch –d new_feature会报错,显示new_feature还未合并。
git branch –D new_feature  强行删除不需要的分支new_feature

 

//多人协作
git remote   查看远程库的信息
git remote –v  显示远程库抓取和推送的地址。如果没有推送权限,就看不到push的地址
git push origin master(dev)  推送本地仓库到远程仓库master(dev)分支
第一次从远程库clone时,默认情况下,只能看到主分支
git branch   只显示主分支
git checkout –b dev origin/dev  添加本地分支dev并和远程仓库的dev关联起来,而后就可以在本地dev分支上继续修改,并将dev分支push到远程
注意:冲突解决
场景:2个团队成员同时修改某个文件,并且都将其push到远程仓库,这样修改不一样的地方就会发生冲突,后者push到远程仓库时,git会提示push失败,需要git pull下来,在本地解决完冲突,最后再push到远程仓库

 

//分支管理策略
master:主分支
dev:开发分支,团队所有成员都需要在上面工作
bug:用于修复bug
feature:用于添加新的feature,可以和团队成员合作在这上面添加新的feature

 

//标签管理
git tag tagname 对当前commit版本打tag
git tag tagname commit_id 对特定commit_id版本打tag
git show tagname  查看标签信息
git tag –a tagname –m “tag explanation” commit_id  对特定commit_id版本打tag,并进行说明
git tag –s tagname –m “tag explanation” commit_id  对特定commit_id版本打tag,并进行说明,用PGP签名标签
git tag –d tagname  删除标签
git push origin tagname  推送标签到远程
git push origin –tags  一次性推送全部尚未推送到远程的本地标签
如果标签已经推送到远程,需要删除远程标签
git tag –d tagname  删除本地tag标签
git push origin :refs/tags/tagname  删除远程标签

 

//git快捷键配置
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
而后git lg就可以查看提交的commit各种详情
 
git log -10  查看最新的10commit版本信息

 

//替换本地改动
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origin
git reset --hard origin/master

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值