目录:
- git分支管理
- git远程库操作
- github
- 暂存区/缓冲区操作
- 查看git库状态
- 版本回退
- 冲突解决
git分支管理
查看远程分支:
git branch -r
查看本地分支:
git branch
查看本地和远程所有分支
(远程分支会用红色标记出来)
git branch -a
新建分支:
git branch '新分支名'
切换当前分支到指定分支:
git checkout '指定分支名字'
基于当前分支创建新分支并切换:
git checkout -b '新分支名字'
将分支dev2的内容合并到当前分支dev1:
git merge dev2
删除本地分支:
git branch -d <name>
删除远程分支:
git push origin --delete <branchName>
git远程库相关操作
增加远程仓库
git remote add origin git@github:robbin/robbin_site.git
设置远程仓库地址
git remote set-url origin git@github.com:robbin/robbin_site.git
远程库克隆项目到本地:
git clone '远程库地址'
更新远端库:
git fetch origin
本地分支推送到远端分支:
git push origin ‘远程分支名’
远端库内容更新到本地-拉取远端库代码:
git pull
GitHub
查看远程服务器地址和仓库名称:
git remote -v
查看远程服务器仓库状态:
git remote show origin
添加远程仓库地址:
git remote add [name] [url]
设置远程仓库地址(用于修改远程仓库地址):
git remote set-url [name] [url]
提交到git时,忽略部分IDE产生的文件
在根目录下创建.gitignore文件,
注意:新加.gitignore只能忽略那些原来没有被提交过的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
缓冲区/暂存区
添加所有文件到缓冲区
后面加“.”的区别在于,加all可以添加被手动删除的文件,而加“.”不行:
git add .
git add --all
提交:提交缓冲区的所有修改到仓库
(注意:如果修改了文件但是没有add到缓冲区,也是不会被提交的)
每次修改,如果不用git add到暂存区,那就不会加入到commit中
git commit -m "提交的说明"
commit可以一次提交缓冲区的所有文件
查看git库的状态
未提交的文件,分为两种,add过已经在缓冲区的,未add过的
git status
查看提交记录
查看该文件每次提交记录
git log
查看最近两次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
查看每次详细修改内容的diff
git log -p
版本回退
可以将当前仓库回退到历史的某个版本
git reset
一:回退到上一个版本(HEAD代表当前版本,有一个^代表上一个版本,以此类推)
HEAD~1,上个版本 HEAD~3倒数第三个版本,以此类推
git reset --hard HEAD^
二:回退到指定版本(其中d7b5是想回退的指定版本号的前几位)
git reset --hard 2dcfc4b7bb5bf9cf07f78632d7d04f7c49843b64 (commit id)
查看命令历史:查看仓库的操作历史
git reflog
冲突解决
①先将本地修改的代码放到暂存区
git stash
②查看暂存区(stash@{0}就是刚才保存的标记)
git stash list
③拉取远端代码
git pull
④还原暂存区内容
git stash pop stash@{0}
// git stash apply # 恢复暂存的内容
// git stash drop # 删除暂存区
系统提示如下类似的信息:
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。
⑤解决文件中冲突的的部分,手动结局文件冲突的内容,看一下保留哪一部分代码