1.前言
参考教程:Git教程-廖雪峰
小结:
看教程很容易理解,但是要灵活运用还需要花时间,毕竟技术注重实践。
2.常用命令
配置:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建本地版本库时,初始化:
$ git init
添加、提交到本地仓库:
$ git add readme.txt
添加所有:
git add .
$ git commit -m "wrote a readme file"
仓库当前的状态:
git status
查看变化:
$ git diff
查看工作区和版本库里面最新版本的区别:
$ git diff HEAD -- readme.txt(文件名)
查看历史记录:
$ git log
一条只显示一行:
$ git log --pretty=oneline
回退:
到上一个版本:
$ git reset --hard HEAD^
上上一个版本:
$ git reset --hard HEAD^^
往上100个版本:
$ git reset --hard HEAD~100
到指定版本:
$ git reset --hard 3628164
丢弃工作区的修改:
--很重要,没有--,就变成了“切换到另一个分支”的命令
$ git checkout -- readme.txt
把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD file
删除文件:
1.文件管理器中删除:
$ rm test.txt
2.从版本库中删除:
$ git rm test.txt
2.1远程仓库
1.创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
会在C:\Users\Administrator\.ssh下生成id_rsa(私钥,不能泄露出去)和id_rsa.pub(公钥)
2.github中添加SSH KEY: title和id_rsa.pub(公钥)
已有的本地仓库与远程仓库关联:
$ git remote add origin git@github.com:yourname/learngit.git
把本地库的所有内容推送到远程库上:
$ git push -u origin master
第一次推送master分支时,加上了-u参数
再次提交:
$ git push origin master
推送其他分支:
$ git push origin dev
克隆一个本地库:
$ git clone git@github.com:yourname/gitskills.git
创建dev
分支并切换:
-b参数表示创建并切换
$ git checkout -b dev
相当于以下两条命令:
$ git branch dev # 创建
$ git checkout dev # 切换
查看当前分支:
$ git branch
合并:
在master下,合并dev:
$ git merge dev
禁用Fast forward模式:
$ git merge --no-ff -m "merge with no-ff" dev
删除分支:
$ git branch -d dev
强行删除:
$ git branch -D dev
分支合并图:
$ git log --graph --pretty=oneline --abbrev-commit
把当前工作现场“储藏”起来:
$ git stash
查看stash:
$ git stash list
恢复:
git stash pop
pull:
指定本地dev分支与远程origin/dev分支的链接:
$ git branch --set-upstream dev origin/dev
$ git pull
标签:
$ git tag v1.0 # 打在最新提交的commit上
$ git tag v0.9 6224937 # 打在历史提交的commit上
查看所有标签:
$ git tag
查看标签信息:
$ git show v0.9
删除:
$ git tag -d v0.9
推送某个标签到远程:
$ git push origin v1.0
$ git push origin --tags # 所有
删除远程标签:
$ git tag -d v0.9 # 1.先从本地删除
$ git push origin :refs/tags/v0.9 # 2.远程删除
忽略特殊文件:
在目录下创建一个.gitignore
文件
忽略模板:https://github.com/github/gitignore
3.常用流程
在github上看到比较好的开源项目想clone过来:
1.在github上fork
2.在本地用命令:$ git clone git@github.com:yourname/gitskills.git
克隆到本地
coding:
如果没有创建SSH Key,先创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
会在C:\Users\Administrator\.ssh下生成id_rsa(私钥,不能泄露出去)和id_rsa.pub(公钥)
在coding中“我的账户“-”SSH公钥“中添加公钥。
本地已经有代码的情况下,先初始化(在主文件夹中):
git init
本地仓库与远程仓库关联:
git remote add origin https://git.coding.net/yourname/projectname.git
pull远程仓库到本地,由于两个仓库不同需要这样写:
git pull origin master --allow-unrelated-histories
提交本地的文件:
git add .
git commit -m "commet"
push到远程:
git push origin master
参考: