Git的使用

分支介绍

master :这个分支的代码是发布到生产的代码
develop :这个分支的代码是预发布到生产的代码
release :这个分支的代码是新版本发布到生产的代码
feature :这个分支的代码是新需求开发的代码
hotfix :这个分支的代码是紧急修复生产 bug 的代码


分支切换

查看本地分支

>git branch
* master

查看所有远程分支

>git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/coraline
  remotes/origin/developer
  remotes/origin/feature/
  remotes/origin/master

切换分支

>git checkout -b dev origin/developer
Switched to a new branch 'dev'
Branch 'dev' set up to track remote branch 'developer' from 'origin'.

>git branch
* dev
  master

查看本地分支和远程分支的关联

>git branch -vv
* dev    ****** [origin/developer] code
  master ****** [origin/master] code

分支合并

在dev分支怎加一个项目说明,这里加入一个文件代替。

[root@VM_0_15_centos gittest]# git branch
  dev
* dev2
  master
[root@VM_0_15_centos gittest]# git checkout dev
Switched to branch 'dev'
[root@VM_0_15_centos gittest]# ls
dev.txt  info.txt  project  README.md
[root@VM_0_15_centos gittest]# echo "this is a information for project" > infors.txt
[root@VM_0_15_centos gittest]# ls
dev.txt  infors.txt  info.txt  project  README.md

此时master分支还是能看到infos.txt 这个文件

[root@VM_0_15_centos gittest]# git checkout master
Switched to branch 'master'
[root@VM_0_15_centos gittest]# ls
infors.txt  info.txt  project  README.md
[root@VM_0_15_centos gittest]# 

切换到dev分支对代码进行本地提交,此时master分支的info.txt就只属于dev分支

[root@VM_0_15_centos gittest]# git add info.txt
[root@VM_0_15_centos gittest]# git commit -m "这是dev提交的一个项目添加说明"
[dev 513bd5d] 这是dev提交的一个项目添加说明
 1 file changed, 1 insertion(+)
 create mode 100644 infors.txt
[root@VM_0_15_centos gittest]# ls
dev.txt  infors.txt  info.txt  project  README.md
[root@VM_0_15_centos gittest]# git checkout master
Switched to branch 'master'
[root@VM_0_15_centos gittest]# ls
info.txt  project  README.md

切换至 master 对dev分支进行合并

[root@VM_0_15_centos gittest]# git merge dev
Updating 35ad065..513bd5d
Fast-forward
 dev.txt    | 0
 infors.txt | 1 +
 2 files changed, 1 insertion(+)
 create mode 100644 dev.txt
 create mode 100644 infors.txt
[root@VM_0_15_centos gittest]# ls
dev.txt  infors.txt  info.txt  project  README.md

删除dev分支

[root@VM_0_15_centos gittest]# git branch -D dev
Deleted branch dev (was 513bd5d).
[root@VM_0_15_centos gittest]# git branch
  dev2
* master

最后上传我们的代码至远程仓库

git push origin 本地分支名

[root@VM_0_15_centos gittest]# git push origin master
Username for 'https://github.com': *********
Password for 'https://******@github.com': 
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 352 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/ake698/gittest.git
   35ad065..513bd5d  master -> master


本地分支:远程分支 (如果本地分支为空的话则代表删除远程分支)
 git push origin dev:CT-83

更新本地仓库

1. git fetch:相当于是从远程获取最新版本到本地,但不会自动 merge

git fetch origin master:tmp
git diff tmp
git merge tmp

2.git pull:相当于是从远程获取最新版本并 merge 到本地

git pull origin master

上述命令其实相当于 git fetch + git merge,

3.git checkout -b 本地分支:远程分支

git checkout -b dev origin/master  //拉去master分支为本地 dev分支

4.当git branch -a 无法查看最新的分支时
有时候当同事刚提交自己的分支,但是自己使用 git branch -a 却无法查看到同事刚提交的分支的时候,可以使用 git fetch origin 来刷新本地缓存

git fetch origin

提交管理

修改最近一次的提交,将本次修改的内容追加到最近一次提交中,然后总体就不会多出一次commit记录。

git add.
git commit --amend

合并本地提交记录

通过 git rebase 来合并本地提交记录,这里记录一下本人最喜欢的方式。

  1. 首先要通过git log获取提交记录
  2. 然后通过git rebase -i id,值合并特定id之后的所有提交,并不包含。
  3. 会出现如下页面,将需要合并的提交从pick 改为 s 保存退出即可,过程中可通过git rebase --abort放弃。

pick id1
pick id2
pick id3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值