Git操作

目录

目录

一、git安装

二、创建版本库

三、连接远程仓库

四、几个空间

五、基本操作

六、其他

6.1 解决冲突

6.2 分支策略

6.3 Bug分支

6.4 多人协作的工作模式

一、git安装

Linux下安装:

sudo apt-get install git

用户名和密码设置:

$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"

二、创建版本库

1.创建文件夹

$ mkdir learngit

$ cd learngit

$ pwd

/Users/michael/learngit

2.初始化

$ git init

Initialized empty Git repository in /Users/michael/learngit/.git/

三、连接远程仓库

1.创建SSH Key

ssh-keygen -t rsa -C "youremail@example.com"

2.在远程仓库添加SSH Key

根绝具体远程库进行操作

四、几个空间

工作区、暂存区、本地版本库、远程仓库

五、基本操作

git status

查看仓库当前的状态

git add 文件名

提交到暂存区

git commit –m “说明内容”

把文件提交到仓库,实际就是提交到当前分支

-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的

commit可以一次提交很多文件,所以你可以多次add不同的文件

git log

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

git diff

不加参数即默认比较工作区与暂存区

--cached, 比较暂存区与最新本地版本库

git reflog

重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

git checkout -- file

撤销工作区修改,用暂存区来覆盖工作区

git reset HEAD <file>

可以把暂存区的修改撤销掉,重新放回工作区,去掉暂存区最近的一次提交,工作区内容不变

git reset --hard 版本号

版本回退,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,用本地版本库来覆盖暂存区、工作区

git rm

删除工作空间文件

git remote add origin git@server-name:path/repo-name.git

关联远程仓库,Gihub举例

$ git remote add origin git@github.com:michaelliao/learngit.git

git push -u origin master

把本地库的内容推送到远程,实际上是把当前分支master推送到远程

第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

从现在起,只要本地作了提交,就可以通过命令:git push origin master

git clone [url]

克隆一个仓库到本地

git branch <name>

git checkout <name>

创建分支

git switch <name>

git checkout  <name>

切换分支

git checkout命令加上-b参数表示创建并切换

git switch命令加上-c参数表示创建并切换

git branch

会列出所有分支,当前分支前面会标一个*号。

git merge <name>

命令用于合并指定分支到当前分支

git branch -d <name>

删除分支:

git stash

可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list

查看stash内容

git stash apply

恢复后,stash内容并不删除,你需要用git stash drop来删除

git stash pop

恢复的同时把stash内容也删了

git cherry-pick <commit>

把bug提交的修改“复制”到当前分支,避免重复劳动

git branch -D <name>

丢弃一个没有被合并过的分支,强行删除

git remote

查看远程库的信息

git remote -v

显示更详细的信息

git push origin branch-name

从本地推送分支

master分支是主分支,因此要时刻与远程同步;

dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

git pull

抓取远程的新提交

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

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

git rebase

变基

git tag <tagname>

新建一个标签,默认为HEAD,也可以指定一个commit id;

git tag -a <tagname> -m "blablabla..."

可以指定标签信息;

git tag

查看所有标签

git push origin <tagname>

推送一个本地标签

git push origin --tags

推送全部未推送过的本地标签;

git tag -d <tagname>

可以删除一个本地标签;

git push origin :refs/tags/<tagname>

删除一个远程标签。

六、其他

6.1 解决冲突

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

Git冲突与解决方法 - 马非白即黑 - 博客园  https://www.cnblogs.com/gavincoder/p/9071959.html

6.2 分支策略

Git分支十分强大,在团队开发中应该充分应用。

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

6.3 Bug分支

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;

在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

6.4 多人协作的工作模式

首先,可以试图用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>。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值