git gui 使用笔记
说明:git gui 与git bash都可用来管理项目代码,git gui 可见性强,易于操作,git bash 相对有些难度。
本人总结了git gui 在使用过程中的一些注意事项以及技巧。
1. fetch 会从github上提取所有branch.
2. git gui 在本地任意branch下修改文件后,如果未commit(提交)可以reset之前的状态 。
commit之后只能merge into 别的branch。不能merge into 自己。
3. origin/master 为 remote 端在本地的备份,github官网修改文件后,要更新到本地,
点击git gui上的 remote->fetch->orgin.
更新了 本地的 origin/master分支后,即可选择与 本地branch merge(如不先fetch,就不会将remote端更新到本地的branch中,
这时merge只是将本地的origin/master 合并到本地branch中)!
5. merge branch 需要先check out 到需要被 merge into 的 branch下。
6. 可以直接在本地新建分支,并提交到remote端,remote 端就会出现新分支,github 官网没有 新建branch选项。
7. git SSH KEY 环境配置 与github连接:
git gui 的Help->show ssh key 生成 ssh public key 并将其粘贴到
github官网的ssh 目录下新建的ssh key值下(头像->setting->ssh and gpg keys)下。
或打开git bash 输入以下命令,输入以下命令。
(1).git config --global user.name "username" #配置用户名。
(2).git config --global user.email "注册时绑定的邮箱"。
(3).git config --global --list 查看配置是否ok.
(4).ssh --keygen -t rsa generate ssh key.
根据提示在指定目录下生成响应文件。将id_rsa.pub中的内容复制到github官网的ssh 目录
下新建的ssh key值下(头像->setting->ssh and gpg keys)下。
(5).ssh -T git@github.com 测试是否连接成功。
生成的文件在git 打开时的默认路径下。如需更改默认路径,需要配置HOME环境变量,值为设置路径。
注:a.配置文件必须在默认路径下,否则无法连接。
b.每个电脑都需7步骤下的ssh key配置操作,没有配置文件无法连接。
c.目前还不确定将一台电脑的配置文件拷到另一台电脑git默认目录下是否可行,
如果不行,可以试试将两台电脑的HOME环境变量值设为一致,再不行,只有重复7步骤
重新生成SSH KEY,并将id_rsa.pub中的内容复制到github官网的ssh 目录
下新建的ssh key值下(头像->setting->ssh and gpg keys)下。
注:一个人可以在同一账号上设置多个密钥,分配给不同的电脑。
8. 当需要将本地新建工程合并到github上 已创建的项目中,需将本地工程目录下所有文件剪切到临时文件夹中,
git gui 中create new respository 选择本地目录,创建完本地master branch后,文件夹中只有.git 文件夹,
fetch->merge ,将remote 端合并到本地 master branch中,此时再将临时文件夹中的所有工程文件拷贝回到
该本地工程目录下,scan->stage changed->commit->push 输入密码后就可以成功了。
注:如果不这么,push后会提示失败,原因是不同步:
1.error: failed to push some refs to 'git@github.com:xxx.git'
2.error: failed to push some refs to 'git@github.com:xxx.git'
3.hint: Updates were rejected because the tip of your current branch is behind
4.its remote counterpart. Integrate the remote changes (e.g.
5.'git pull ...') before pushing again.
6.See the 'Note about fast-forwards' in 'git push --help' for details.
从提示可以看出,是由于两者不同步,因此需要先 pull,进行合并然后在进行 push。
git bash命令行与上述git gui 方法类似。
9. 如不想解决冲突,并将origin/master完全覆盖本地的master,只需将本地master分支删除后重新创建个
master即可merge,否则合并不了。