一、简单命令
1、克隆远程仓库的文件
git clone git@url
2、切换已存在的分支
git checkout release-2.0
3、创建切切换刚创建的分支
git checkout -b branchName
也可拆分两个步骤:
创建新分支:git branch branchName
切换到新分支:git checkout branchName
4、查看当前有哪些分支
git branch -a
5、提交文件步骤
a、git fetch b、git add filename c、git commit -m "提交备注" d、git meger e 、git push
二、可能遇到问题:
1、git clone Permission denied
可能原因:当前电脑中没有公钥的问题导致的。我们需要配置git的当前用户,然后通过命令生成公钥,并把生成的公钥添加到Git用户的配置信息中。
步骤:生成公钥文件(ssh-keygen -t rsa ),找到公钥文件(id_rsa.pub),将里面的公钥添加到git账户中,具体如下图所示:
三、系统学习
1、原理
remote:远程仓库、reposity:本地仓库、index:缓存区、workspace:工作区
本地分之关联远程: git branch --set-upstream-to=origin/beta beta
2、命令
---新建代码库
项目创建:git init [project]
项目复制:git clone [url]
---配置
显示当前的git配置:git config --list
编辑git配置文件:git config -e [--global]
设置提交代码时的用户信息:git config [--global] user.name [name] git config [--global] user.email "[email address]"
---增加删除文件
添加文件到暂存区:git add ([file]/[dir])
删除暂存区的文件:git rm ([file]/[dir])
---代码提交
提交暂存区到仓库区:git commit -m [message]
提交工作区自上次commit之后的变化,直接到仓库区:git commit -a
提交时显示所有diff信息:git commit -v
如果代码没有任何新变化,则用来改写上一次commit的提交信息: git commit --amend -m [message]
重做上一次commit,并包括指定文件的新变化:git commit --amend [file1] [file2]
---分支
列出所有本地分支:git branch
列出所有远程分支:git branch -r
列出所有本地分支和远程分支:git branch -a
新建一个分支,但依然停留在当前分支:git branch [branch-name]
新建一个分支,但依然切换到新分支:git checkout -b [branch-name]
新建一个分支,指向指定commit:git branch [branch-name][commit]
新建一个分支,与指定的远程分支建立追踪关系:git branch --track [branch-name][remote-branch]
切换到指定分支,并更新工作区:git checkout [branch-name]
切换到上一个分支:git checkout -
合并指定分支到当前分支:git merge [branch]
删除分支:git branch -d [branch-name]
删除远程分支:it push origin --delete [branch-name]
---查看信息
显示有变更的文件:git status
显示当前分支的版本历史:git log
---远程同步
下载远程仓库的所有变动:git fetch [remote]
显示所有远程仓库:git remote -v
显示某个远程仓库的信息:git remote show [remote]
增加一个新的远程仓库,并命名:git remote add [shortname] [url]
取回远程仓库的变化,并与本地分支合并:git pull [remote] [branch]
上传本地指定分支到远程仓库:git push [remote] [branch]
---撤销
恢复暂存区的指定文件到工作区:git checkout [file]
恢复某个commit的指定文件到暂存区和工作区:git checkout [commit] [file]
恢复暂存区的所有文件到工作区:git checkout .
重置暂存区的指定文件,与上一次commit保持一致,但工作区不变:git reset [file]
重置暂存区与工作区,与上一次commit保持一致:git reset --hard
重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变:git reset [commit]
重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致:git reset --hard [commit]
重置当前HEAD为指定commit,但保持暂存区和工作区不变:git reset --keep [commit]
后者的所有变化都将被前者抵消,并且应用到当前分支:git revert [commit]
---Git分支管理策略
主分支Master:首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。
开发分支Develop:主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。
Git创建Develop分支的命令:
git checkout -b develop master
将Develop分支发布到Master分支的命令:
# 切换到Master分支
git checkout master# 对Develop分支进行合并
git merge --no-ff develop (--no-ff 快速合并)
预发布分支:它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。
--------------------------------------------------------------------------------------------------------------------------------
分支合并
dev合并到master
1、切换分支:git checkout master
2、拉取代码:git pull origin master
3、合并代码:git merge dev
4、代码提交:git push origin master
---------------------------------------------------------------------------------------------------------------------------------
远程分支新建后本地看不到新分支
1、刷新远程分支:git remote update origin --prune