1.初始化
1 2 3 4 5 6
| git config --global user.name "Your Name" git config --global user.email "email@example.com" mkdir MyBlog cd MyBlog git init
|
2.关联github
本地git关联github帐号
1 2 3 4
| ssh-keygen -t rsa -C "youremail@example.com" 在用户主目录中.ssh目录里生成id_rsa和id_rsa.pub两个文件 把id_rsa.pub粘贴到github的SSH KEYS里
|
关联仓库的两种情况:
1 2 3 4 5 6
| git remote add origin git@github.com:username/MyBlog.git # 除了git协议还支持https://github.com/username/MyBlog.git,但是用https,在push时会要求填帐号密码 git clone git@github.com:username/MyBlog.git #从远程仓库克隆时,实际上Git会自动把本地的master分支和远程的master分支对应起来,并且远程仓库的默认名称是origin。
|
3.添加与推送文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| vim readme.txt vim index.php git add readme.txt git add index.php # $ git add readme.txt # warning: LF will be replaced by CRLF in readme.txt. # The file will have its original line endings in your working directory. # 原因:windows下vim自动给最后加了一个换行,可改用notepad++编辑文件 #可以用 git add -A 或 git add . 提交所有变化 git commit -m "commit 2 files together" # git commit -m "#" 无描述 rm readme.txt git rm readme.txt git commit -m "remove readme.txt" git push -u origin master # 第一次加上-u和远程master分支关联 git push origin master
|
4.分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git branch dev # 添加dev分支 git checkout dev # 切换分支 # git checkout -b dev 新建并切换到dev分支 git branch # 查看分支 git checkout master git merge dev # git merge命令用于合并指定分支到当前分支 git branch -d dev #删除dev git push origin dev # 默认git clone 只有master 不会有分支,该命令把远程的dev分支拉到本地 git checkout -b dev origin/dev
|
5.遇到的问题
git pull
失败
1
| Please commit your changes or stash them before you merge.
|
是因为有本地变更但没有commit
。
解决办法:
1.commit
2.
1 2 3
| git stash # 备份当前的工作区的内容 git pull git stash pop # 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。
|
接下来diff
一下此文件看看自动合并的情况,并作出相应修改。
3.放弃本地修改,直接覆盖之
1 2
| git reset --hard git pull
|
参考
廖雪峰git教程
Git官网
gitignore
Git冲突:commit your changes or stash them before you can merge.