一、git hello world

1
2
3
4
5
6
1. git init 创建一个git项目,.git文件。
2. git add <files>
2.1 git add hello.txt 单文件添加
2.2 git add 1.txt 2.txt 多文件添加
2.3 git add . 添加全部
3. git commit -m "提示信息" 提交

二、基础命令 status diff

1
2
3
4
1. git status
查看仓库当前状态。
2. git diff <filename>
查看具体文件修改内容

三、版本回退

1
2
3
4
5
6
7
8
9
1. 查看提交历史
git log
git log --pretty=oneline
2. 回退版本
git reset --hard^ ^表示回退到上一个版本 有几个^就表示回退到上几个版本
git reset --hard~100 回退到上
git reset --hard <versionNO> versionNO可以就是前几位
3.查看命令历史
git reflog

四、工作区与暂存区

1
2
3
4
1. 可以简单的把一个git项目分成两部分 工作区、版本库(.git)
2. 工作区就是我们平时写的代码,如hello world.txt
3. 版本库分为 暂存区(stage)和分支(branch)
4. git add 工作区→暂存区 git commit 暂存区→分支

五、撤销操作

1
2
3
4
5
6
7
8
9
10
11
12
1. 修改后 未add(添加到暂存区) 需要撤销修改时:
git checkout -- myfile.txt 或 手动删除工作区修改
工作区 : clean 暂存区: clean
2. 修改后 add了(未commit) 再次修改文件 要撤销第二次修改时:
git checkout -- myfile.txt (将暂存区恢复到工作区)
暂存区有第一次的修改需要commit
3. 修改后 add了(未commit),需要撤销修改时:
git reset HEAD myfile.txt (将暂存区修改删除)
此时工作区的修改还未撤销
git checkout -- myfile.txt (撤销工作区修改)
4. 修改后 add并commit了,需要撤销修改时:
git reset --hard HEAD^ (版本回退)**

六、删除文件

1
2
3
4
5
6
7
1. 删除工作区文件
rm <filename>
2. 删除暂存区文件
git rm <filename>
3. 删除文件
git rm <filename>
git commit -m "remove filename"

七、远程库

1
2
3
4
5
6
1. 本地推送到远程库
①关联远程库 git remote add origin https://github.com/BestRumbleCN/learngit.git
②第一次推送master分支 git push -u origin master
③推送最新修改 git push origin master
2. 从远程库克隆
git clone https://github.com/BestRumbleCN/learngit.git

八、分支操作

1
2
3
4
5
1.查看分支 git branch
2.创建分支 git branch <name>
3.切换分支 git checkout <name>
4.合并某分支到当前分支 git merge <name>
5.删除分支 git branch -d <name>

九、解决冲突

1
git log --graph 可以看到分支合并图

十、分支策略

1
2
尽量不适用Fast Forward模式,通过命令参数(--no-ff)
git merge --no-ff -m "merge with no-ff" dev

十一、Bug分支

1
2
3
4
5
6
7
8
1.将当前工作现场储藏
git stash
2.创建bug分支 修改 提交到主干 删除bug分支
3.恢复原工作现场
1.git stash apply(stash内容并不删除,git stash drap 删除)
2.git stash pop(恢复并删除stash)
4.可多次stash,恢复的时候使用 git stash list 查看,
恢复指定stash使用 git stash apply stash{0}

十二、多人协作

1
2
3
4
5
6
7
8
9
10
1.首先,试图推送自己的修改
git push origin <branchName>
2.如果推送失败,远程分支有新版本
git pull
3.如果有冲突,则解决冲突,并在本地提交
4.再次提交
git push origin <branchName>
5.在本地创建和远程分支同步的分支
git checkout -b <branchName> origin/<branchName> 等价于
①git checkout -b <branchName> ②git pull origin <branchName>

十三、标签

1
2
3
4
5
6
7
8
1.创建标签
git tag -a “v1.0” -m “git learning version 1.0”
2.推送标签
git push origin v1.0 / git push origin —tags
3.删除标签
git tag -d v1.0
4.删除远程标签
its push origin :refs/tags/v1.0

原文链接