git 常用
一. 加 ssh-key
二. git clone
使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的beagleOS项目:git@github.com:DamonDeng/beagleOS.git),而你的SSH key没有添加到github帐号设置中,系统会报下面的错误:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
这时需要在本地创建SSH key,然后将生成的SSH key文件内容添加到github帐号上去。
创建SSH key的方法很简单,执行如下命令就可以:
ssh-keygen
然后系统提示输入文件保存位置等信息,连续敲三次回车即可,生成的SSH key文件保存在中~/.ssh/id_rsa.pub
然后用文本编辑工具打开该文件,我用的是vim,所以命令是:
vim ~/.ssh/id_rsa.pub
接着拷贝.ssh/id_rsa.pub文件内的所以内容,将它粘帖到github帐号管理中的添加SSH key界面中。
打开github帐号管理中的添加SSH key界面的步骤如下:
1. 登录github
2. 点击右上方的Accounting settings图标
3. 选择 SSH key
4. 点击 Add SSH key
在出现的界面中填写SSH key的名称,填一个你自己喜欢的名称即可,然后将上面拷贝的~/.ssh/id_rsa.pub文件内容粘帖到key一栏,在点击“add key”按钮就可以了。
添加过程github会提示你输入一次你的github密码
添加完成后再次执行git clone就可以成功克隆github上的代码库了。
三. 本地操作
1. 创建分支(本地)
git branch feature/new_task
2. 切换分支
git checkout feature/new_task
(1&2 git checkout -b feature/new_task)
3. 查看log
git log
4. 查看当前branch状态
git stauts
5. 回退到修改前
git reset HEAD (已经commit?)
6.添加需要提交的文件
git add $filename
7. 提交文件
git commit -m "$commit_str"
git commit -v
8.查看文件修改情况
git diff
git show $commit_id
9.临时缓存
git stash (缓存)
git stash pop (加载缓存)
10.回退版本
git reset -hard $commmit_id (慎用,貌似会覆盖代码)
四. 提交到server前要做的操作
* develop 为本地 主 branch
* origin 为代码源
* origin/develop 为 源的主 branch
* feature为本地的开发branch
1. git checkout develop
2.git fetch origin (查看元是否有新的更新)
3. git merge origin/develop (将源的新内容更新到本地主branch)
4. git checkout feature
5. git rebase develop (将本地主branch已更新的内容rebase到开发branck)
如果有冲突:
5.1 修改冲突文件
5.2 git add 已修改冲突文件
5.3 git rebase --continue 继续查看是否还有冲突
6 git push origin feature (最后可以保证已和线上代码同步,提交开发的内容)