git项目区域
- 工作区: 即个人克隆项目到本地后,项目所在的文件夹目录
- 暂存区: 用于储存工作区中的变更(增删改等改动)的文件的地方.操作时使用 git add 会将本地所有的变更提交到暂存区中
- 本地仓库: 用于储存工作区和暂存区中提交上来的文件, 使用 git commit -m ‘提交内容的描述’
- 远程仓库: 将本地仓库的修改提交到远程, 使用 git push origin 远程分支名
工作区 --git add–> 暂存区 – git commit --> 本地仓库 – git push --> 远程仓库
git 基础
- git init (name) 创建仓库
- git clone (url) 克隆仓库到本地
- git status 查看当前git状态信息(查看是否有文件未提交)
- git log 查看提交记录
git 分支
- git branch [branchname] 创建分支
- git checkout [branchname] 切换分支
- git checkout -b [branchname] 创建并切换分支
- git branch 分支列表 (默认本地分支 -r远程 -a本地和远程 )
- git branch -d [branchname] 删除分支
- git branch -m [oldbranch] [newbranch] 重命名本地分支
git配置信息
- git config -l 查看git的配置信息
- git config user.name ‘Lee’ git配置本地仓库的userName
- git config user.email ‘12345@qq.com’ git配置本地仓库的邮箱
- git config --golbal -l 查看全局git配置信息
拉取代码
- git fetch 远程主机的最新内容拉到本地,需要手动合并代码到本地
- git pull 远程仓库同步到本地仓库,拉取并合并代码到本地,即git pull = git fetch + git merge
本地提交到git索引(缓存)中
-
git add . #把新增的、修改的都加到缓存
-
git add -A #把新增、和修改的、和删除的都加到缓存
-
git rm 删除缓存和本地的文件
-
git rm --cahced 只删除缓存的文件
commit代码到本地分支
- git commit -m “修改说明” #提交到本地仓库
- git commit -am ‘修改说明’ #添加文件并完成提交到本地仓库
push到远程分支
- git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名>
- git push 提交当前分支到远程
- git push origin 将当前分支推送到origin主机的对应分支
- git push -f 强制提交,以本地分支的内容覆盖远程
git reset 撤销
作用:提交内容撤回到commit_id
- git reset --soft [commit_id] 修改内容撤回暂存区。
- git reset --mixed [commit_id] (默认) 修改内容撤回到工作区。
- git reset --hard [commit_id] 放弃所有修改内容
git tag 打标签
作用:表示重要的提交快照,不可修改
- 创建轻量标签: git tag [tagName] -m “消息内容”
- 创建附注标签(-a, 会记录-人/时间/邮件/commit): git tag -a [tagName] -m “消息内容”
- 给某次commit打标签: git tag -a [tagName] commit_id
- 推送远端: git push origin [tagName]
- 本地删除标签: git tag -d [tagName]
- 远端删除标签: git push origin :refs/tags/[tagName]
- 切换tag: git checkout [tagName]
- 查看标签内容: git show [tagName]
git stash 缓存
作用:将修改内容保存到本地缓存中
- git stash save “save message” 执行存储时,添加备注
- git stash list 查看stash了哪些存储列表
- git stash apply [num] 使用某个下标的缓存
- git stash drop [num] 删除某个下标的缓存
- git stash clear 删除所有缓存的stash
git cherry-pick
作用:将其他分支某次提交记录pick合并到当前分支
git cherry-pick commit_id1 commit_id2
git merge
作用:将一个分支的修改记录合并到另一条分支
git merge <branchname>
git rebase
操作commit记录(编辑,删除,合并,复制,粘贴)
命令
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)
#### git 删除中间某次commit
- 找出删除commit的前一次的commit_id: git log
- 找出提交记录并进入vim状态: git rebase -i commit_id
- 将错误的commit 的 pick 改为 drop
- 退出编辑: esc, :wq
- 提交到远程:git push -f