临时整理的,部分内容为补充,有的注释也没写,后面有空会补上
- pwd 查看当前目录
- whoami
git init //创建git本地仓库
touch 1.txt
touch 2.txt
git add .
git commit -m "fix bug"
git commit -am "fix bug" // add 并 commit
git rm 2.txt //删除
.gitignore // git提交忽略配置文件
关联远程仓库:
-
添加远程仓库
:git remote add origin <url>
git remote add origin https://gitee.com/xxx/xxxxxx.git
可以添加多个远程仓库
- git remote
- git remote -v
- git remote show origin
- git push -u origin master
远程仓库 - 常见操作命令
-
克隆仓库
git clone <url>
git clone https://gitee.com/xxx/xxxxxx.git
-
移除仓库
git remote rm <name>
git remote rm origin
注意
: 此命令只是从本地移除远程仓库的记录,并不会真正的影响远程仓库
-
抓取/拉取 仓库
git fetch <branch> master
|git pull <branch> master
get pull
: 是从从成仓库获取最新版本并merge到本地仓库
get fetch
: 是从远程仓库获取最新版本到本地仓库,不会自动merge
(其实已经以二进制文件形式存放在.git文件加下objects文件中)
注意
:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories)
,解决此问题可以在git pull
命令后加入参数-allow-unrelated-histories
如果已关联远程仓库则可以直接:
git fetch
或git pull
如果未关联远程仓库则需指定仓库地址.
git fetch https://gitee.com/aliffter/gitRepoDemo.git
git pull origin master https://gitee.com/aliffter/gitRepoDemo.git
- git fetch 后,需进行 git merge 操作才能正常显示。
-
合并
git mere <origin/master>
git merge origin/master
注意
git pull == git fetch + git merge
git分支
-
查看分支
- 查看本地分支:
git branch
- 查看远程分支:
git branch -r
- 查看所有分支:
git branch -a
- 查看本地分支:
-
创建分支
- 创建本地分支:
git branch <branchname>
- 创建本地分支:
git branch test //创建一个名字为test的本地分支
-
切换分支
- 切换分支:
git checkout <branchname>
- 切换分支:
git checkout test //切换到test分支
注意
:* test 前面的” * “号表示,当前所在的分支
-
推送分支
首先要知道两个关键字:origin
、master
origin
可以认为是默认的远程版本库名称
master
分支名称
- 将分支推送到远程仓库:
git push origin <localBranch>: <remoteBranch>
git push origin test
解释:
- $git push A B:C
其中A和C是分别remote端的一个repository的名字和branch的名字,
B : 是本地端branch的名字
git push A B:C意思是把本地分支B推送到远程仓库A的C分支。当B=C时可以直接省略为:git push A B。
注意:
通常 A 不可修改 ,默认为 origin ,所以平常我们写的
git push origin master
就表示 把我们本地的master分支 推送到 远程仓库的master分支上
-
合并分支
-
合并分支
git merge <branch>
-
git merge test
设定当前在master 分支上,执行git merge test,表示,将test分支合并到master上
-
合并冲突
有时候合并操作不会如此顺利,如果在两个不同的分支中,对同一个文件的同一个部分进行了修改,Git就没办法合并他们,同时会提示文件冲突。此时需要我们打开冲突文件,并修复冲突内容,最后执行git add命令来标识冲突已解决
-
删除分支
-
删除本地分支
git branch -d <branch>
-
删除远程分支
git push origin -d <branch>
-
如果要删除的分支中进行了一些改变,或者该分支还尚未合并,此时执行上面的删除命令并不会删除分支(即该分支与远程仓库中的对应分支存在差异),如果要强制删除此分支,则可以将命令中的
-d
参数改为-D
Git标签
- 像其他版本控制一样,Git可以给历史中的某一个提交打上标签,以示其重要。
- 比较有代表性的是人们会使用这个功能来标记发布节点(v1.0、v2.0等)。标签指定的是某个分支某个特定时间点的状态。
- 通过标签,可以很方便的切换到标记的状态
- 创建一个新标签:
git tag <tagName>
git tag v1.0
git tag v2.0
- 列出已有的标签:
git tag
git tag
- 查看某个标签的信息:
git show <tagName>
git show v1.0
- 将标签推送至远程仓库:
git push <remote> <tag>
git push origin v1.0
- 检出标签(新建一个分支,指向某个标签)
git checkout -b <branch> <tag>
/*
创建一个b1.0分支指向v1.0标签,同时切换到b1.0分支下
*/
git checkout -b b1.0 v1.0
- 删除标签
- 删除本地tag :
git tag -d <tag>
- 删除远程tag:
git push origin :refs/tags/<tag>
- 删除本地tag :
git tag -d v1.0
git push origin :refs/tags/v1.0