git git git 要注册滴滴滴
没注册啥都不能干
git连接可以用两种协议 ssh 或者http,这里使用ssh
生成ssh keys :
$ssh-keygen -t rsa -C "lucyPoter@example.com"
之后全部回车,不添加更多层的密钥
即可看到生成公钥,一副鬼才知道什么意思的字符图
查看生成的私钥
$cat ~/.ssh/id_rsa.pub
复制 包含“ssh-rsa ”和 “lucyPoter@example.com”之间全部字符, 将其添加到github中右上角-> profile Setting->SSH Keys 页面中的 key 文本框中,点击Add key ,Title文本框会自动添加邮箱:lucyPoter@example.com 之后会生成 Your SSH keys 。 另外需要跟github的管理员开通其他权限(各公司要求不同)
继续我们本地哈 ~~
配置用户信息
$ git config --global user.name "Lucy Poter"
$ git config --global user.email "lucyPoter@example.com"
配置文本编辑器为vim 或者可以凭个人喜好选择 emacs 等其他文本编辑器:
$ git config --global core.editor vim
克隆github远程库中的代码:
$git clone git@xxxxxx-xxx-xx:xxx/xxx.git
本地为自己建立分支
$git checkout -b lucy_lcl_dev
查看目前所在的本地分支
$git branch
*lucy_lcl_dev
master
修改代码中 》》》 done!
查看本地工作区状态
$git status
这时会显示修改或者添加的文件
将修改的全部代码添加到本地的版本库中的stage 【暂存区】
$git add -A
将暂存区的commit到当前分支
$git commit
直接跳到文本编辑器 vim中【在git config中设置的】
添加必要的信息, 例如:
【bug_fix】Redmine# 1001 Modified the XXX module
.....
保存退出
判断 git 的push权限:
$git remote -v
如果路径尾部包含(push) 表示可以push。如果还是显示检查是否有push权限或者分支是否存在,请联系管理员,八成是管理员没给你开什么权限
从lucy的本地版本分支 push到 lucy的远端分支 【规则请查阅git workflow】
$ git push origin lucy_lcl_dev:lucy_remote_repo
在远端的github web页面提交Merge Request。 填写CodeReview 同事等 请遵照各自公司流程请求分支合并
只要你代码没毛病 , 会有有管理员同意你的Merge 请求 ~~
$$$$$$$$$$番外$$$$$$$$$$$$
clone到文件夹lucyDir
$git clone git@xxxxxx-xxx-xx:xxx/xxx.git lucyDir
从远端更新本地代码
$git pull origin
把远端的分支和到本地
$git merge origin/lucy_remote_dev --squash
这个 git merge --squash 选项呢 请跳转:http://www.cnblogs.com/ungshow/p/3515161.html
效果是将多个commit合并成一个,放在当前分支上
查看某个节点的修改
$git show xxxxxxxxxxxxxxxxxxxxxxxxxxx
这里的xxxxxxxxxxxxx是哈希id
####################################################
避免冲突:
创建常用分支,例如名为 dev
将更新代码 commit 到dev
然后切换到master 分支:
git checkout master
然后拉取远端仓库的最新代码
git pull master
然后 合并dev到master
git merge dev
并将合并信息push到远端仓库
【有严格的代码管理机制请执行:
git push origin master:dev_repo_lucy
并向管理员请求合并】
git push origin master
此时就完成提交
别忘了切换工作分支
git checkout dev
checkout 某个commit 节点 为新分支:
git checkout -b branch_name git_log_commit_id
例如:
git checkout -b first_version 3c0fb6c169f141fe3317471ae05022ede33f3da2