目录
安装工具
- linux下安装git
sudo apt-get install git
- windows下使用git
建议安装git-bash工具使用
设置机器标识
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
目的是让远程仓库识别身份,Your Name是让仓库识别你的名字,在代码提交历史中就会以这个名字显示你的记录。
本地仓库操作
1.创建本地仓库
在指定目录下创建一个文件夹,并将文件夹变成版本仓库
mkdir firstMode //创建文件
cd firstMode //进入文件
git init //初始化为本地仓库
2.提交文件到仓库
1.在firstMode文件中创建README.md文件(类似工程中添加了代码或者文件)
2.将文件添加到仓库
git add README.md
- 3.提交文件到仓库
git commit -m "message" //message标识提交的日志
git commit --amend //可以对上一次的提交做修改
3.查看版本区别
- 查看版本情况
git status
- 对比当前修改和仓库版本的不同(这里的仓库指本地仓库)
git diff filename
4.版本后退
- 查看版本日志
git log
- 回滚到上个版本
git reset --hard HRAD^
git reset --hard 版本号
- 查看历史命令
git reflog
- 通过查看历史命令获取版本号
git rm filename
git checkout -- filename
git reset HEAD filename
- 版本回退后,强制推送到远程分支
git push -f
5.分支管理
-
查看分支
git branch //查看本地仓库的分支 git branch -a //查看远程仓库的分支
-
创建分支并切换到该分支
git checkout -b dev
-
创建分支
git branch dev
-
切换到该分支
git checkout dev
-
删除该分支
git branch -d dev
-
合并某分支到当前分支
git merge dev
-
删除远程分支
git push origin --delete dev
-
本地分支和远程分支建立关联
git branch --set-upstream v1.9.0 origin/v1.9.0
-
更新远程信息到本地
git fetch -v
远程仓库操作
1.绑定sshkey
-
1.创建本地的密钥
因为git-bash本身集成了ssh,所以我们可以方便的直接使用ssh的相关命令。
ssh-keygen -t rsa //创建ssh密钥
根据提示输入:
存储文件密钥的位置(直接回车键,创建在默认的目录下)
输入密码
再次输入密码(如果设置了密码,每次提交代码需要输入这个密码,所以不建议设置密码) -
2.将公钥添加到github
点击右端小头像-->settings-->SSH keys
打开公钥将公钥复制到github上。vim ~/.ssh/id_rsa.pub
-
3.使用中可能遇到的问题
-
(1)找不到ssh私
通过ssh-add ~/.ssh/id_rsa命令,添加私钥。
-
(2)无法执行添加私钥
在添加私钥时,经常会出现:
ould not open a connection to your authentication agent.
可以通过执行这个命令解决:
ssh-agent bash
-
2.修改远程服务器链接等问题
- 添加远程服务器连接
git remote add origin url
- 修改远程服务器链接
git remote set-url origin url
- 查看远程仓库地址
git remote -v
3.从远程仓库中拉取到本地
-
1.通过clone
在安装好git,并在远程仓库中绑定ssh之后,在指定目录中执行:
git clone url
就能将远程仓库的master分支拉去到本地,并且本地仓库处于master分支;
-
2.通过pull
在绑定了ssh、初始化本地仓库、添加远程服务连接之后,这个时候本地仓库和远程仓库已经形成了关联。也就说在完成上面的几个步骤,本地仓库已经处于master分支。但是,这个时候没办法查看远程的分支情况,原因是本地创建的仓库的.git信息和远程仓库不同步,可以通过拉去远程信息到本地:
git fetch
这个步骤是将远程的信息拉去到本地,放到.git文件中。
通过pull 命令就可以拉去远程仓库的master分支的代码了
git pull origin master
如果要拉去其他分支的代码,只需要切换到分支,并拉取:
git checkout -b dev //切换分支 git pull origin tinker_dev //拉取
4.提交到远程仓库
在将代码提交到本地仓库之后,这个时候可以通过下面的命令,将本地的代码同步到远程仓库中:
git push origin dev
dev是当前分支,提交代码也是对应到远程仓库的分支中。如果远程仓库中没有该分支,会提醒是否继续提交,如果提交成功则远程仓库中也有了该分支。
5.标签管理
- 给当前commit打标签
git tag tagname
- 给指定的commit打标签
git tag tagname commitnum
- 创建带有说明的标签
git tag -a tagname -m "version 0.1 released" commitnum
- 查询标签
git tag
- 查询标签修改内容
git show tagname
- 删除标签
git tag -d tagname
- 在本地打上标签,只会在本地,如果想要推送某个标签到远程
git push origin v1.0
- 一次性推送全部尚未推送到远程的本地标签
git push origin --tags
- 删除远程的标签,先删除本地标签,然后在执行以下代码
git push origin :refs/tags/tagname
<a id="label">跳到这里来</a>
参考
参考网址:
http://fooklook.com/blog/toolnote
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000