一、常用操作命令
1、创建目录 git init 创建了一个空的仓库
2、git add xxx 将文件添加到仓库 可反复多次使用,添加多个文件
3、git commit -m "注释、说明" 将add的文件提交
4、git status 查看仓库状态
5、git diff 查看difference 查看文件改动的地方
6、git log 查看提交日志,从近到远,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline
参数
7、git reflog 查看命令历史
8、git reset --hard HEAD^ 回到上一个版本,在git中HEAD是当前版本,HEAD^是上一版本,HEAD^^是上上一版本,往上100个版本就是HEAD~100
9、git reset --hard id 返回指定版本 此处的id为提交的版本id,只需要前几位就可以了,
10、git checkout -- file 可以丢失工作区的修改,把文件在工作区的修改全部撤销,这里有两种情况
(1)文件修改后,还没有放入暂存区即没执行add,撤销后回到跟版本库一样的状态
(2)文件修改后,执行了add,放入了暂存区,撤销后回到添加到暂存区后的状态
11、场景一:当你改乱了工作区的某个文件的内容,想直接丢弃修改,使用 git checkout -- file
场景二:当你不但改乱了工作区的某个文件的内容,还添加到了暂存区,想丢弃修改,分两步,第一步用命令git reset HEAD file 就回到了场景一,第二步按场景一操作
场景三:已经提交了不合适的修改到版本库,想撤销本次提交,使用版本回退
12、git rm file 将删除操作增加到工作区,git commot -m “删除文件” 将删除操作提交到版本库执行版本库中的文件删除
13、checkout其实是用版本库中的版本去替换工作区的版本,无论是修改还是删除都可以一键还原
二、远程仓库
1、git remote add origin git@github.com:perrin1995/GitLearning
本地仓库关联github仓库
2、git push -u origin master 把本地库的内容推送到远程,用git push,实际上是把当前分支master推送到远程
由于远程库是空的,我们第一次推送master分支时加上了 -u 参数,git不但会把本地的master分支内容推送到远程的新的master分支,还会把本地master分支和远程的master分会关联起来,在以后的推送或者拉取的时候就能简化命令
3、git clone git@github.com:username/reponame.git 从远程仓库克隆工程
三、分支
1、git checkout -b dev 创建分支dev并切换到dev
相当于执行了两行命令git branch dev 和 git checkout dev
2、git branch 查看当前分支 git branch -d name 删除分支
3、git merge dev 合并指定分支dev到当前分支上
4、git log --graph 获取分支合并图
5、git stash git stash pop 临时存储和恢复工作区内容
6、git branch -D name 强制删除,丢弃一个没有被合并过的分支
7、git remote 查看远程库的信息 git remote -v 信息更详细
8、git checkout -b 分支名称 origin/分支名称 本地和远程分支名称最好一致
9、多人协助的工作模式
(1)首先,可以试图用git push origin 分支名称 推送自己的修改
(2)如果推送失败,则因为远程分支比你的本地更新,需要先用git pull 拉取下来合并
(3)如果合并有冲突,则解决冲突,并在本地提交
(4)没有冲突或者冲突已经解决,再用git push origin 分支名称推送就能成功
如果git pull提示no tracking information 则说明本地分支与远程分支没有建立连接,
用命令git branch --set-upstream-to 分支名称 origin/分支名称。这就是多人协作的工作模式