最近学习Acwing课程,整理一下git操作。
git基本概念
- 工作区:仓库的目录。工作区是独立于各个分支的。
- 暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
- 版本库:存放所有已经提交到本地仓库的代码版本
- 版本结构:树结构,树中每个节点代表一个代码版本。
git常用命令
git config --global user.name XXX
:设置全局用户名,信息记录在~/.gitconfig
文件中git config --golbal user.email XXX@XXX.com
:设置全局邮箱地址,信息记录在~/.gitconfig
文件中ssh-keygen -t rsa -C "your_email@youremail.com"
:生成密钥和公钥,添加到远程库中才能访问git init
:将当前目录配置成git仓库,信息记录在隐藏的.git
文件夹中git add XXX
:将XXX文件添加到暂存区git add .
:将所有待加入到暂存区的文件加入到暂存区
git rm --cached XX
:将文件从仓库索引目录中删掉git restore XXX
或git cheackout - XX
:将XX文件尚未加入暂存区的修改全部撤销git restore --staged XXX
:将暂存区的XXX撤销回工作区
git status
:查看仓库的状态git diff XXX
:查看XXX文件相对暂存区修改了哪些内容git log
:查看当前分支的所有版本!!git refolg
:查看HEAD指针的移动历史(包括回滚历史)git reset --hard 版本号(前7位数字)
:回滚到某一特定版本git remote add origin git@git.acwing.com:xxx/XXX.git
:将本地仓库关联到远程仓库git push -u (第一次需要-u以后不需要)
:将当前分支推送到远程仓库git push origin branch_name
:将本地当前分支推送给远程仓库目标分支,如果远程仓库没有会自动创建一个branch_name
分支,但名字必须和当前分支相同git push --set-upstream origin branch_name
:设置本地的branch_name
分支对应远程仓库的branch_name
分支
git clone git@git.acwing.com:xxx/XXX.git
:将远程仓库文件下载到当前目录git checkout -b branch_name
:创建并切换到branch_name
分支git checkout branch_name
:切换到branch_name
分支git branch branch_name
:创建新分支
git branch
:查看所有分支和当前分支git merge branch_name
:将分支branch_name
合并到当前分支git branch -d branch_name
:删除本地仓库的branch_name
分支git pull
:将远程仓库的当前分支与本地仓库的当前分支合并git pull origin branch_name
:将远程仓库的branch_name
分支与本地仓库的当前分支合并
git branch --set-upstream-to=origin/branch_name1 branch_name2
:将远程的branch_name1
分支与本地的branch_name2
分支对应git checkout -t origin/branch_name
或git checkout -b master origin/branch_name
: 将远程的branch_name
分支拉取到本地git stash
:将工作区和暂存区中尚未提交的修改存入栈中git stash apply
:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素git stash drop
:删除栈顶存储的修改git stash pop
:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素git stash list
:查看栈中所有元素