写在前面:本文是学习廖雪峰的Git 教程 整理出来的笔记
安装好git之后,就如git bash 命令行环境
1. 设置用户名和邮箱:
用到的命令:git config --global user.name "yypz" 与 git config user.eamil "xxxx@qq.com"
2. 创建目录ye,进入ye目录 并将目录设置为仓库:
用到的命令:git init
3. 在仓库目录ye中新建一个reademe.txt 文件,并加入如下内容:Hello Git 然后用 add 命令添加,用 commit 提交
用到的命令:git add reademe.txt ( add 全部文件命令为:git add -A )
与 git commit -m "first version" ( 提交全部文件命令为: git commit -a -m "comments"
4. 再次修改 reademe.txt 文件,增加一行内容: --I'm YE 后,查看文件修改后未add,与add后的状态,再与仓库中已提交的最新版本比较
用到的命令:git status 与 git diff
5. 回退到某个版本,用 git log (或git log --pretty=oneline) 命令查看提交记录,
回退到某个版本
最新提交的版本是HEAD,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
用到的命令:git log (或者 git log --pretty=oneline) 用 git reflog 查看所有提交记录 回退到最新版本:git reset --hard head
回退到某个版本 git reset --hard xxxxxx 其中xxxxxx代表版本号
6. 撤销修改:
用到的命令:gti checkout -- xxx 其中xxx是需要撤销更改的文件名
如最后一次操作是 git add 则 撤销到 add 后的状态,如果没有add 则撤销到最后一个git commit 后的状态
如果 使用git add 命令后,想撤销add,则使用命令:git reset head xxx
如果 使用g add 命令后,想撤销add,(但是文件修改的内容不会变),则使用命令:git reset head xxx (注意,撤销回到最新版本命令是:git reset --hard head xxx)
7. 回退指定文件sss.txt到某一个版本
用到的命令:git reset xxx sss.txt 其中,xxx 代表要回退的版本号,注意:此时工作空间sss.txt不会发生变化,再用命令
git checkout -- sss.txt 后,工作空间的sss.txt 才会变为 xxx 版本所对应的内容
8. 克隆远程仓库到本地:
用到的命令: git clone git@github.com:YYPZ/ye.git
9. 将本地仓库与 GitHub 上新建的远程仓库关联
用到的命令: git remote add origin git@github.com:YYPZ/ye.git (其中 origin 可为自定义名称)
10. 将本地仓库推送到 GitHub 远程仓库
用到的命令: git push -u origin master (注意:origin 为第9点,指定的名称)
11.从远程仓库更新文件
用到的命令: git pull (此命令从远程仓库更新代码,并且与本地仓库的代码合并)
12.分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
删除一个未被合并的分支:git branch -D <name>
13. 如果在不同分支修改后合并有冲突,即 运行 git merge xxx 有冲突, 用 git status 查看冲突的文件,修改冲突的文件后,在运行 git commit -m "xxx" 提交修改
运行
git log --graph --pretty=oneline --abbrev-commit 分支合并情况
如果要强制禁用Fast forward
模式,这样合并后就不会丢掉分支信息,Git就会在merge时生成一个新的commit ,所以要加上-m 参数
使用命令: git merge --no-ff -m "merge with no-ff" dev
14. 如果当前工作只完成了一半,但必须先新建分支去做另一个功能,则可以先保存当前工作现场,
用到的命令:git stash 保存工作现场 使用命令:git stash list 查看保存的工作现场列表,使用命令:git stash pop 恢复最近一次保存的现场,并删除sta sh的内容
使用命令:git stash apply 恢复最近一次保存的现场, 命令:git stash apply stash@{1} 恢复stash@{1}对应的工作现场,这两个命令并不删除stash的内容
使用命令:git stash drop 删除最近一次保存的工作现场, 命令: git stash drop stash@{1} 删除stash@{1}对应的工作现场
15. 本地库与远程库的操作
查看远程库的信息:git remote 查看更详细的信息:git remote -v
克隆远程仓库到本地:git clone git@github.com:YYPZ/ye.git 这样克隆下来的只有远程仓库的master分支,如果需要其它分支,则用一下命令
git checkout -b dev origin/dev 这样本地就会有dev 分支,对应着远程的 origin/dev 分支
从远程更新代码: git pull 如果失败的原因为当前分支未与远程分支连接,则使用:git --set-upstream dev origin/dev 将本地dev 与远程origin/dev 链接
推送:git push origin dev 把当前分支推送到远程origin dev 分支
16. 标签tag
新建标签:git tag version1.0 查看标签: git tag 显示 version1.0 标签的信息:git show version1.0
对某次提交打上标签:git tag version1.0 xxxxxx 其中xxxxxx代表对于的commit id
推送标签到远程仓库:git push origin version1.0 推送所以标签到远程仓库:git push origin --tags
删除本地标签 git tag -d version1.0
如果需要删除的标签已经提交到远程仓库,则先删除本地:git tag -d version1.0 再删除远程仓库:git push origin :refs/tags/version1.0