Git学习笔记
工作区 暂存区 本地仓库 远程仓库
git init //初始化 产生.git文件 开始在工作区工作
git remote add origin "仓库地址"//连接仓库
git status //查看文件状态
git add . //提交到暂存区(. ->提交所有文件) or
git add 文件路径 //提交某个文件
git commit -m "说明" //提交到本地仓库
git pull origin 远程分支名 //将远程的最新代码与本地合并 解决冲突后从git add命令开始
git push origin master or
git push origin 本地分支名:refs/remotes/远程分支名 //提交到远程仓库
分支
git branch //查看本地分支
git branch -a //查看所有分支
git checkout -b 分支名 //在本地创建并切换到分支,然后就可以在该分支上正常提交
git checkout -b 分支名 origin/master //将远程master分支的内容放在本地某分支下并切换到该分支
git add .
git commit -m "" //该分支上工作就完成了
git push -u origin 本地分支名称(:云端分支名称) //提交本地分支到远程,若分支名相同 忽略括号内容
git checkout master //切换到master分支
git merge 分支名 //将该分支的工作成果合并到master上
git branch -d 分支名 //删除该分支 or
创建分支还可以用
git branch 分支名 //创建
git checkout 分支名 //切换
拉取远程分支到本地
git init
git remote add origin "git地址" //与远程仓库建立联系
git fetch origin "分支名" //拉取分支
git checkout -b "本地分支名" "远程分支名"
git pull origin "远程分支名"
有冲突时进行消息确认,在bash上对其进行说明,按ESC,输入":wq",回车,完成。
fetch and pull
二者都是将远程分支的最新内容拉取到本地,但fetch(在本地)看不到变化并且会在本地产生一个fetch_head的指针,指向某个branch在服务器上的最新状态:一般来说,没有显式的指定的话,其指向的是远程分支的master。
git fetch origin or
git fetch origin master
而想要指定其他分支的话
git fetch origin "分支名" //也可用来测试该远程分支是否存在
这就相当于pull的第一步。
git fetch origin "远程分支名" :"本地分支名"
上条命令操作是:
- 首先执行上面的fetch操作
- 使用远程分支在本地创建分支(但不会切换到该分支)
- 如果本地不存在该分支,则会自动创建一个新分支,如果存在该分支,并且是fast forward,则会自动合并这2个分支,否则会阻止以上的操作。
pull相当于 fetch + merge ,强制合并,忽视冲突。
git fetch origin master
git merge origin/master
git pull origin master
git rebase
作用与merge相似,但提交的顺序、记录有所区别。在本地分支与远程主分支同时开发的基础上,rebase使得本地的提交成为公共分支的直接下游,而merge则是使本地的提交在远程主分支的提交之后。
git checkout feature
##在相应分支上开发
git add
git commit
##多次提交后通过rebase合并提交,简化
git rebase -i
##与主分支合并
git fetch origin master
git rebase origin/master
git push
对比本地和远程
git diff "本地分支名" "远程仓库名"/"远程分支名"
git diff h1 origin/h1
git diff HEAD origin/develop --stat #显示出所有有差异的文件列表
按q退出
提交部分文件,忽略部分文件
git add src/components/文件名
git stash -u -k #忽略其他文件
git commit -m "..."
git push
git stash pop #恢复之前忽略的文件