msysgit 是 Windows 版的 Git,从 http://msysgit.github.io/ 下载,然后按默认选项安装即可。
设置 Git 的 user name 和 email:###
$ git config --global user.name "xx"
$ git config --global user.email "[email protected]"
如果你公司的项目是放在自建的 gitlab 上面, 如果你不进行配置用户名和邮箱的话, 则会使用全局的, 这个时候是错误的, 正确的做法是针对公司的项目, 在项目根目录下进行单独配置
$ git config user.name "gitlab's Name"
$ git config user.email "[email protected]"
git config --list 查看当前配置, 在当前项目下面查看的配置是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置
生成 SSH 密钥###
$ ssh-keygen -t rsa -C “[email protected]”
在 github 上添加 ssh 密钥###
clip < id_rsa.pub
命令上传
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
测试:ssh [email protected]###
$ ssh [email protected]
Hi 457375608! You've successfully authenticated, but GitHub does not provide she
ll access.
Connection to github.com closed.
本地仓库关联远程仓库###
$ git init
$ vim test.txt
$ git add .
$ git commit -m "test"
$ git remote add origin [email protected]:457375608/test.git
$ git push origin master
克隆 github 仓库到本地###
$ git clone [email protected]:457375608/test.git
$ cd test
$ ls
$ vim test.txt
$ git add .
$ git commit -m "20150726"
$ git push origin master
查看分支###
$ git branch
$ git branch -r //查看原创分支
创建分支###
创建本地分支(建立分支后,仍停留在当前分支,切换分支:git checkout branchName)
$ git branch branchName
创建分支后切换到新分支
$ git checkout -b branchName
提交分支:###
提交到远程分支
$ git commit -a -m 'my new branch'
git push origin branchName:branchName
如果想把本地的某个分支 mybranch 提交到远程仓库,并作为远程仓库的 master 分支
$ git push origin mybranch:master
删除分支:###
删除远程分支
$ git push origin :branchName
删除本地分支,强制删除用-D
$ git branch -d branchName
合并分支###
将分支 branchName 和当前所在分支合并
$ git merge branchName
回退###
$ git reset --hard HEAD #放弃工作区和index的改动,HEAD指针仍然指向当前的commit.撤销还没commit的merge,其实原理就是放弃index和工作区的改动,因为没commit的改动只存在于index和工作区中。
$ git reset HEAD #放弃暂存区的改动,把暂存区的修改撤销掉(unstage),重新放回工作区
$ git reset --hard HEAD^ #用来撤销已经commit的内容(等价于 git reset --hard HEAD~1) 。原理就是放弃工作区和index的改动,同时HEAD指针指向前一个commit对象。
$ git reset HEAD^ #回退所有内容到上一个版本
$ git reset HEAD^ a.py #回退a.py这个文件的版本到上一个版本
$ git reset --soft HEAD~3 #向前回退3个版本
$ git reset --hard origin/master #将本地的状态回退到和远程的一样
$ git reset 057d #回退到某个版本
暂存###
git stash save -a '提交到暂存区'
git stash apply stash@{index} 恢复到第?个暂存区
git stash list 查看有几个暂存区
git stash clear 删除所有的暂存区
git stash drop stash@{index} 删除第?个暂存区
.gitignore
忽略某些文件时,需要编写.gitignore
,如: node_modules
如果文件已经被添加到版本中去了在想忽略的话需要先从版本库中移除git rm --cached xxx
,然后再添加到.gitignore
中