1、安装
安装只需要默认即可,安装完成之后进行下面的配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
2、创建git仓库
mkdir demo
cd demo
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/xxx/demo.git
git push -u origin master
3、已有仓库
cd demo
git remote add origin https://gitee.com/xx/rdemo.git
git push -u origin master
4、常用命令
- 克隆
get clone https://gitee.com/xxx/project.git
- 加入缓存区
git add demo.txt
- 提交缓存区内容
git commit -m "modify demo.txt"
- 查看状态
git status
- 查看修改内容
git diff demo.txt
5、退回版本
- 查看日志
git log
- 退回上个版本
git reset --hard HEAD^
,一个’^'表示上一个版本,如果是上上个版本这个git reset --hard HEAD^^
,
或者退回到前100个版本则使用git reset --hard HEAD~100
- 退回到指定commit id[git log或者git reflog查看]的版本
git reset --hard 1094a
,一般只需要输入id的前几位就行。
6、撤销修改
-
查看状态
git status
,发现demo.txt内容修改了,想退回 -
丢弃工作区的修改
git checkout -- demo.txt
/git restore demo.txt
,该指令有两种情况:
一种是demo.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态一种是demo.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
-
撤销git add添加到暂存区的内容,重新放回工作区
git reset HEAD demo.txt
/git restore --staged demo.txt
7、撤销删除
git restore --staged demo.txt
git restore demo.txt
8、分支
- 查看分支
git branch
,带*
号的表示当前分支 - 查看所有分支
git branch -a
- 创建并切换到本地dev分支
git checkout -b dev
git checkout
命令加上-b
表示创建并切换,相当于下面两条命令:
git branch dev
—创建分支
git checkout dev
—切换分支
创建并切换到远程dev分支git checkout -b dev origin/dev
- 合并分支,将dev的分支合并到master分支,则需要先切换到master分支
git checkout master
—切换到master分支
git merge dev
—合并分支 - 删除dev分支
git branch -d dev
,强制删除git branch -D dev
- 特别:当从远程clone项目到本地时,只克隆了master分支,如果想看到别的远程分支如dev,需要
git checkout -b dev origin/dev
9、BUG分支
场景:有master和dev分支,当前在dev分支上修改,然后有个紧急任务,需要修改master分支上的bug
-
把当前工作隐藏起来
git stash
-
切换到master分支
git switch master
-
创建issue-101分支处理bug
git switch -c issue-101
-
修复bug,然后提交
git add demo.txt
,git commit -m "xxx"
-
切回master,合并、删除issue-101
git switch master git merge issue-101 git branch -d issue-101
-
接着回dev分支,接着干活
git switch dev git status 发现没有修改,那之前的修改去哪了呢
-
查看隐藏的工作现场
git stash list
-
修复工作现场,并删除stash
git stash pop
10、多人协作
多人协作的工作模式通常是这样:
-
首先,可以试图用
git push origin <branch-name>
推送自己的修改; -
如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; -
如果
git pull
提示"no tracking information",则说明本地分支和远程分支的链接关系没有创建,用命令(以dev分支为例)
git branch --set-upstream-to=origin/dev dev
。完成之后,再git pull
一次 -
如果
git pull
提示合并有冲突,则在本地解决冲突,并在本地提交; -
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
小结
-
查看远程库信息,使用
git remote -v
; -
本地新建的分支如果不推送到远程,对其他人就是不可见的;
-
从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull抓取远程的新提交; -
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致; -
建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
; -
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。