git 使用

git ssk clone init
ssh-keygen -t rsa -C "[email protected]"  
cat ~/.ssh/id_rsa.pub

网页中添加 ssh key 
然后测试 ssk 是否生效

ssh -T [email protected]
Welcome to Git@OSC, yourname!

git help
http://git.mydoc.io/?t=154712
http://www.liaoxuefeng.com/


查看用户名和邮箱地址:
$ git config user.name

$ git config user.email
修改用户名和邮箱地址:

$ git config --global user.name "username"

$ git config --global user.email "email"

克隆
git clone git|http 项目地址

上传一个项目

初始化 git
git init 

touch .gitignore

vim .gitignore

git add .   //添加到索引
git rm  -r --cache .idea  //删除索引

git commit -m "init"

git reset HEAD filename 撤销提交

git update-index --assume-unchanged filename 强制忽略某个文件
--关联远程地址
git remote add origin  ...git

--删除远程主机地址
git remote rm origin 




--pull 忽略没有关系的历史
git pull origin master --allow-unrelated-histories

git push -u origin master  提交代码到远程 master分支上




--------bug--------------
windows中的换行符为 CRLF, 而在Linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
$ rm -rf .git  // 删除.git  
$ git config --global core.autocrlf false  //禁用自动转换    

然后重新执行:
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
$ git init    
$ git add .  
rm -rf .git  删除 git 文件






git remote http(s)方式如何自动记住密码
https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速
按照以下设置记住密码十五分钟:
git config --global credential.helper cache

如果你想自定义记住的时间,可以这样:
git config credential.helper 'cache --timeout=3600' //这里记住的是一个小时,如需其
他时间,请修改3600为你想修改的时间,单位是秒

你也可以设置长期记住密码:
git config --global credential.helper store

或修改仓库的地址带上你的账号密码
http://yourname:[email protected]/name/project.git //注意,码云平台同时支持个性地址与邮箱,当使用邮箱时,请对@符号使用%40替换


如果你原本使用的ssh地址想更换成http(s)地址,可以执行以下命令:
//删除原本的ssh仓库地址
git remote rm origin //origin 代表你原本ssh地址的仓库的别名
//新增http地址的仓库
git remote add origin http://git.oschina.net/username/project.git

//修改远程仓库的名字
git remote rename origin org




git 分支的使用
创建分支
git checkout dev

显示分支名字
git branch -r|-a|-v

切换分支
git checkout origin dev 

--合并分支
git merge dev

--分支创建 与合并  
git checkout -b dev    //luobing  //切换 并新建一个分支 luobing

git push (-u) origin dev   //push 本地dev 分支 到 远程分支 

git branch (-u | --set-upstream-to=origin/dev ) 
origin/dev      //默认关联本地 dev 

删除分支
git branch -d dev  // 删除本地分支
 
git push origin --delete dec_caoyw  //删除远程分支

git branch -m dec_caoyw dev_caoyw  //修改本地分支名称


恢复删除的分支 先 查日志 找到 commitid  然后 git branch 新分支找回
git log -g 
commit 3eac14d05bc1264cda54a7c21f04c3892f32406a
Reflog: HEAD@{1} (fdipzone <[email protected]>)
Reflog message: commit: add test.txt
Author: fdipzone <[email protected]>
Date:   Sun Jan 31 22:26:33 2016 +0800


git branch recover_branch_abc 3eac14d05bc1264cda54a7c21f04c3892f32406a





---fetch
git fetch origin dev:dev
git diff dev
git merge dev

--pull
git pull origin dev  



git 标签的使用
新增标签
git log  --oneline 查看日志

git tag -a v0.1 
i  输入 标签备注 一般为 commit 前7位

也可以
git tag -a v0.2 -m "v0.2 version bug fixed"

提交 标签到远程仓库
git push origin  --tags 
git pull origin v0.1



显示标签信息
git show v0.1

切换标签
git checkout v0.1

列出标签
git tag  


删除本地tag
git tag -d tagname

删除远程tag
git push origin :tagname




分支合并错误  然后 回滚


在GIT中创建一个空分支
git checkout --orphan doc
然后合并代码  
git chekcout --orphan test1.2.0.6.1
允许提交 没有关联的历史记录
git merge test1.2.0.6    --allow-unrelated-histories

push 远程分支 
git push org test1.2.0.6.1

git rebase test1.2.0.6 回把这个分支删除

git cherry-pick <commit id> 如何把已经提交的commit, 从一个分支放到另一个分支

git reset --hard commitId 

git revert 

git diff  test1.2.0.6  test1.2.2.0.6.1  --cached
git diff  test1.2.0.6  test1.2.2.0.6.1  --staged


git add .

git rm -rf --cache .filename


如果要是 提交了以后,可以使用 git revert

还原已经提交的修改 
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交 
git revert HEAD 撤销前一次 commit 
git revert HEAD^ 撤销前前一次 commit 
git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存) 
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容


git merge –no-ff 可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。

git merge 则不会显示 feature,只保留单条分支记录。

猜你喜欢

转载自takeme.iteye.com/blog/2364446
今日推荐