1、创建git目录
mkdir learngit
cd learngit
2、初始化git目录
git init
ls -ah
3、将文件添加并提交到到git仓库
git add file1
git commit -m "notes"
4、查看修改的状态,并比较修改了哪些内容
git status
git diff
5、显示从由近到远的提交日志
git log
git log --pretty=oneline
6、各版本的表示
HEAD^ 上个版本
HEAD^^ 上上个版本
HEAD~100 往上100个版本
7、后退
git reset --hard HEAD^ 回退到上一个版本
git log 查看现在版本库的状态
8、后悔了(撤销后退,前进)
git reflog 记录每一次操作命令
git reset --hard commit_ID
9、版本区别比较
git diff HEAD -- readme.txt 比较当前版本readme.txt文件和上一版本的区别
10、丢弃修改内容
git checkout -- file
11、删除文件
在目录中删除文件后 rm -f file
到版本库中删除
git rm file
git commit -m "comment"
从版本库中恢复
git checkout -- file
12、github创建账号、添加密钥
13、建立本地库与远程库的联系,并推送本地库文件到远程库
git remote add origin git@server-name:path/repo-name.git
git push -u origin master
14、从远程库克隆一个本地库
git clone git@github.com:f066/gitskills.git
15、创建并切换到分支dev
git checkout -b dev 其中-b参数表示创建并切换
相当于
git branch dev
git checkout dev
16、查看当前分支
git branch
17、切换分支到master
git checkout master
18、合并dev分支到当前分支
git merge dev
如合并dev分支到master分支
git checkout master
git merge dev
19、删除dev分支
git branch -d dev
20、查看分支合并图
git log --graph
21、普通模式的合并分支dev到当前分支
git merge --no-ff -m "comment" dev
22、暂存当前分支dev,去另一分支master上修复bug,修复后再恢复到先前的分支dev继续工作
git status 查看git 状态
git stash 将当前分支dev压栈
git checkout master 切换到master分支
git checkout -b issue-101 创建并切换到bug分支issue-101
git add bug.txt
git commit -m "bug fix 101"
git checkout master 切换到master分支
git merge --no-ff -m "merged bug fix 101" issue-101 将bug分支issue-101合并到当前分支
git branch -d issue-101
git checkout dev 切换到dev分支
git status
git stash list 查看栈中的分支列表
(git stash apply stash@{0}
git stash drop) 或 git stash pop 将栈中存放的分支弹出,可以使用两条命令,也可以使用一条命令
23、查看远程库信息
git remote
git remote -v
24、推送dev分支到远程库
git push origin dev
25、打个新标签
git branch
git checkout master
git tag v1.0
26、查看所有标签
git tag
27、补标签
查找历史提交的commit id
git log --pretty=oneline --abbrev-commit
git tag v0.9 COMMIT_ID
28、查看标签信息
git show v0.9
29、创建带有说明的标签
git tag -a v0.1 -m "comment " commit_id
30、删除标签
git tag -d v0.1
31、推送某个标签到远程仓库
git push origin v1.0
32、推送所有未推送到远程的 标签
git push origin --tags
33、删除远程仓库中的标签
git tag -d v0.9 在本地删除
git push origin :refs/tags/v0.9 从远程删除