git基本常用操作

Git和SVN都是常用的版本控制工具,但是二者相比,Git优点更明显。

Git是分布式的,不依赖中心服务器的远程仓库,远程仓库可以用于团队之间的代码交流同步,但是服务器或远程仓库崩了,本地开发版本提交不受影响,成员间需要同步代码时,基于现有的本地库重新搭建一个远程仓库即可。但是SVN中心服务器一崩,你就再也没办法提交版本了。类似的还有没有网络等场景,Git都可以完美发挥作用。

 

1、图示

(1)总体图示

(2)团队内部协作(同一远程库)

(3)团队间协作(多个远程库)

 

2、常用命令

(1)初始化与版本提交

#安装完git软件,设置全局的用户名及邮箱
git config --global user.name "phs999"
git config --global user.email "peihesun@163.com"

git init #初始化工作区

git add  #将更改添加到暂存区

git commit -m "提交说明" 提交的文件 #将暂存区的内容提交到本地版本库

#只要有文件新建或修改,但并没有commit到本地库,则可以通过status查看追踪到。
git status

#查看提交的日志记录
git reglog

(2)重置与版本回滚

 git reset --hard 7e3b663 前进或后退到某个版本
从暂存区恢复删除的数据 或者从本地库恢复重置数据 都可以使用该命令实现 


reset命令的hard mixed soft 参数
hard:本地库的指针移动的同时,重置暂存区,重置工作区

mixed:本地库的指针移动的同时,重置暂存区,工作区不变

soft:本地库的指针移动的同时,暂存区和工作区都不变

 

 

 

(3)比对文件差异

git diff [文件名] 比较单个特定文件 在工作区和暂存区的差异

git diff 不带文件名,则比对工作区和暂存区的所有文件差异

git diff 本地库版本号 [文件名] 比较工作区和本地库特定版本之间的差异

和最近一次提交的记录做比对的话,版本号可以直接写HEAD

即git diff HEAD Test3.txt

 

(4)分支

同时多个分支可以并行开发,互相不耽误,互相不影响,提高开发效率

如果有一个分支功能开发失败,直接删除这个分支就可以了,不会对其他分支产生任何影响。

查看分支
git branch -v

新建分支
git branch newbranch

切换分支
git  checkout newbranch
$ git branch b1

phs@DESKTOP-V9 MINGW64 /d/code/github/gittest (master)
$ git branch -v
  b1     12e7455 添加了Test4.txt
* master 12e7455 添加了Test4.txt

phs@DESKTOP-V9 MINGW64 /d/code/github/gittest (master)
$ git checkout b1
Switched to branch 'b1'

phs@DESKTOP-V9 MINGW64 /d/code/github/gittest (b1)
$ git branch -v
* b1     12e7455 添加了Test4.txt
  master 12e7455 添加了Test4.txt

分支冲突处理

出现冲突的原因是因为不同分支修改了同一文件的相同位置。

 

 

当前分支为b1,修改并提交内容,

然后切到master分支,此时工作区文件也变为master分支的内容,在b1分支时进行的工作区变更被重置了。

 git checkout master

然后再次修改,并修改

 

再次切换分支至b1

 git checkout b1

此时工作区文件内容变为b1分支的内容。

将b1分支合并到master分支上

首先切换到master分支

 git checkout master

然后 git merge b1

merge不成功的话,需要手动处理(修改工作区的冲突内容),然后提交,此时commit不能带文件名

(5)远程库

远程库交互

创建github账户 创建远程仓库

 

create a new repository on the command line、

echo "# gittest2" >> README.md 

git init 

git add README.md 

git commit -m "first commit" 

git remote add origin https://github.com/phs999/gittest2.git git push -u origin master

 

push an existing repository from the command line

 

git remote add origin https://github.com/phs999/gittest2.git 
git push -u origin master

因为远程库地址过长,所以使用起别名的方式

git remote add origin https://github.com/phs999/gittest2.git

查看别名 git remote -v

推送到远程库

git push的一般形式为 git push <远程库别名> <本地分支名>  <远程分支名>

git push origin master

 如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

git push origin

   如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支 

 git push

  如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,

可以使用git branch -r ,查看远程的分支名

 

 git push -u origin master 如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,

 

git push --all origin 当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项

 

 

 

使用远程库资源在本地建立工作区(把远程库的内容初始化到本地)

git clone https://github.com/phs999/gittest2.git

pull=fetch+merge

fetch将远程库更新内容拉取到本地,但不更新工作区

需要merge。可以先切换到远程库的主分支查看最新的内容,判断正确后再merge.

git checkout origin/master 远程

git checkout master 本地

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值