远程仓库
- 和远程库skystore关联
cd skystore git init git remote add origin https://gitee.com/skyyemperor/skystore git pull origin master --allow-unrelated-histories
- 克隆远程库
git clone https://gitee.com/skyyemperor/skystore
- 查看远程仓库信息
# git remote show [remote-name] git remote show origin
推送
-
把文件添加到本地仓库
git add a.txt
-
提交到本地仓库
git commit -m "first commit"
-
第一次推送
git push -u origin master
-
以后的推送
git push origin master
-
保存密码,下次push无需重复输入
git config --global credential.helper store
删除
一、 删除本地文件,同时也删除远程仓库的文件
- 1. 删除本地文件,同时也删除远程仓库的文件
- 删除文件
git rm aa.txt
- 删除文件夹
git rm -r test
- 2. 提交修改
git commit -m "del some files"
- 3. 将修改提交到远程仓库的xxx分支
git push origin xxx
- 删除文件
二、 删除远程库文件,但不删除本地文件
- 1. 删除远程库文件或文件夹
git rm -r --cached .idea
- 2. 提交到本地仓库
git commit -m "del remote .idea"
- 3. 推送到远程仓库
git push origin master
分支
-
拉取远程分支
# 在本地新建分支x,并自动切换到该本地分支x git fetch origin 本地分支名:远程分支名
-
创建分支
-
在本地创建分支
git branch <name>
-
在本地创建与远程仓库对应的分支
git switch <name> origin/<name>
-
切换分支
git switch <name>
-
创建+切换分支
git switch -c <name>
-
查看分支
git branch
-
合并分支到当前分支
#git merge –no-ff 可以保存之前的分支历史,能够更好的查看 merge历史以及branch 状态。 git merge --no-ff -m "merge **" <dev> #git merge 则不会显示 feature,只保留单条分支记录 git merge <dev> git rebase dev # 取出一系列的提交记录,“复制”它们,放到另一个地方。
-
删除分支
- 删除本地分支
git branch -d <name>
- 删除远程分支
git push origin --delete <name>
- 删除本地分支
-
推送分支
-
1、从本地推送分支
git push origin <branch-name>
git push origin <本地分支名>:<远程分支名>
-
2、若推送失败,抓取远程的新提交
git pull
```-
3、若pull失败
git pull origin master --allow-unrelated-histories
-
-
查看分支合并图
git log --graph
Tag标签
-
列出标签
git tag git tag -l "v1.5*" #模糊匹配
-
创建标签
git tag first-tag #创建轻量标签 git tag -a first-tag -m "my version first-tag" #创建附注标签
-
查看标签
git show
-
push标签到远程仓库
git push origin first-tag #推送first-tag标签到远程仓库 git push origin --tags #把所有不在远程仓库服务器上的标签全部传送
-
删除标签
git tag -d first-tag #删除本地仓库标签 git push origin --delete first-tag #删除远程仓库标签
-
检出标签
如果你想查看某个标签所指向的文件版本,可以使用
git checkout
命令,。虽然这会使你的仓库处于“分离头指针(detached HEAD)”的状态——这个状态有些不好的副作用。git checkout first-tag
在“分离头指针”状态下,如果你做了某些更改然后提交它们,标签不会发生变化, 但你的新提交将不属于任何分支,并且将无法访问,除非通过确切的提交哈希才能访问。 因此,如果你需要进行更改,比如你要修复旧版本中的错误,那么通常需要创建一个新分支:
git checkout -b new-branch first-tag #利用first-tag标签创建新分支new-branch
冲突
-
git pull之后若出现以下情况,则说明发生冲突
-
git status
查看详细情况 -
修改出现冲突的文件
-
git push
重新推送
小技巧
查看仓库当前状态
git status
查看具体修改内容
git diff a.txt
查看记录
git log #查看详细记录
git log --pretty=oneline #查看单行记录
回滚版本号
git reset --hard head^ #返回前一个版本号
git reset --hard head~100 #返回前100个版本号
git reset --hard e21c #返回指定的版本
git revert c1 # 会创建一个新版本c1'
将文件在工作区的修改全部撤销
git checkout -- a.txt
创建新分支修改bug
-
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场
git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场;在master分支上修复的bug,想要合并到当前dev分支,可以用
git cherry-pick <commit>
命令(例如4csda8e),把bug提交的修改“复制”到当前分支,避免重复劳动。 -
问题commit your changes or stash them before you can merge
error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.java Please, commit your changes or stash them before you can merge. Aborting
-
解决方法:
git stash git pull git stash pop
合并commit
# git log --oneline
fed50f4 (HEAD -> master) c
d96354e b
82b5648 a
# 将b c 两个commit合并
# git rebase -i 82b5 (82b5为开区间,不包含)
pick d96354e b
pick fed50f4 c
# 修改为
pick d96354e b
s fed50f4 c
# 保存后,提交
git add .
git rebase --continue
Comments | 0 条评论