本地仓库

仓库初始化

git init: 初始化一个Git仓库

添加文件

git add <file> : 把某个指定文件的修改从工作区添加到暂存区 注意:git跟踪的是修改

git commit -m “message” : 把暂存区所有修改提交到当前分支 注意:是修改,不是文件

git status : 查看状态

git diff <file> : 查看文件修改内容

版本回退

git log : 查看提交记录

git reset --hard HEAD^: 回退到上一个版本

git reset --hard 1094a: 回退到指定版本号对应的版本

git reflog:所有命令的记录

撤销修改

git checkout -- <file>: 撤销工作区对应文件的修改,已经通过git add添加到暂存区的修改不会被撤销。

​ 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

​ 注意:git checkout <branchname>,也就是不带"--"时是切换到另一个分支

git reset HEAD <file>: 撤销暂存区对应文件的修改,重新放回工作区,如果要彻底撤销,还要执行git checkout -- <file>命令

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。

远程仓库

添加SSKHkey

推送到远程仓库

git remote add origin git@github.com:username/learngit.git: 关联远程仓库,这里以github为例

git push -u origin master: 把本地库的所有内容推送到远程库上,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。从现在起,只要本地作了提交,就可以通过命令git push origin master把本地master分支的最新修改推送至GitHub。

从远程仓库克隆

git clone git@github.com:username/gitskills.git: 从远程仓库克隆

分支管理

创建与合并分支

git checkout -b dev: 创建dev分支并切换到该分支,相当于git branch devgit checkout dev两条命令的合并。注意:由于git checkout dev和之前的git checkout -- <file>很像,容易混淆,所以可以使用git switch代替:git switch -c dev-创建并切换到对应分支,git switch dev-切换到已有分支。

git branch: 命令查看当前分支

git merge dev: 合并指定分支dev到当前分支

git branch -d dev: 删除指定分支dev

解决冲突

暂存

git stash: 以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list: 查看暂存内容

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了。

cherry-pick

多人协作

git remotegit remote -v

git checkout -b dev origin/dev: 从远程库clone时,默认情况下,只能看到本地的master分支。要在dev分支上开发,就必须创建远程origindev分支到本地,就要用这个命令创建本地dev分支:git checkout -b dev origin/dev

Rebase--变基

posted on 2021-01-18 16:16  yaohl0911  阅读(6)  评论(0编辑  收藏  举报