git结构含四个部分:版本库、暂存库(临时存放文件的改动)、工作区(平时放代码的地方),它们之间可以通过命令进行同步
初始化:
- 当前文件夹初始化为工作区:git init
- 初始化工作区
git config user.name [name]
git config user.email [email]
git add . 放到本地仓库 .是全部
git commit -m ‘first commit’ - 连接远程仓库:git remote add [远程库名] [github库url]
- git checkout -b main ballhit/main 创建本地分支和远程库中的分支相关联并切换到此分支下
- 拉取远程分支中代码和本地分支工作区内代码merge:git pull
基本操作流程:
- 用工作区内新版本覆盖暂存区内旧版本:git add
- 追踪暂存区内文件的变化(文件有三种状态:untracked 文件没有在暂存区,未被追踪;changes not stack 工作区和暂存区文件有差异;changes to be commited 工作区已覆盖暂存区,存在需要同步到远库的差异):git status
- 如果远程库有其他人修改过,则需要拉取远程库中代码和本地工作区内代码merge:git pull [远程库名]
- 同步暂存区内所有文件到本地库(含备注msg):git commit -m “xxx”
- 提交代码:git push
合并分支b到a:
切换到分支a: git checkout [分支a]
合并:git merge [分支b]
切换分支:
- 查看本地和远程分支:git branch -a;只查看本地分支:git branch
- 创建并切换到新分支:git checkout -b newbranch
- 在新分支内修改
- 切换到主分支后和新分支merge并自动提交一条commit:git checkout main → git merge newbranch
- 删除没有用的分支:get branch -d newbranch
回到过去:
- git log:查看commit记录
- 返回之前某一版本:将本地库git reset --hard [commit id]
git stash
- 保存当前工作区和暂存区的状态到git栈,并备注:git stash save “msg_xxx”
- 查看当前栈中所有版本:git stash list
- 恢复工作区和暂存区到之前存的某个版本:git stash stash@{num}
- 清空git栈:git stash clear