git 使用(二)

  之前写过一篇git使用(一),那是入门篇,现在的(二)可以说是进阶篇吧,主要讲一些使用过程的注意事件及相关问题的解决办法。

  一、push和fetch还需要输入用户名和密码?

  解决办法:看看公玥是否添加成功,输入ssh -T git@git.oschina.net,若返回Welcome to Git@OSC, yourname! 则添加成功。如果成功,则进入.git/目录改一下config文件里的url参数,把https地址改成ssh地址。

  二、更新代码

  1、git fetch,更新远端代码到本地缓存;

  2、git rebase,将本地缓存中最新代码合并到当前分支。

  上面的2步可以用git pull代替,但是,禁止使用 git pull 和 git merge 来更新与合并代码,因为会产生多余的log 在工作目录clean的时候执行合并操作。

  如果要把远程分支合并到本地分支,就进入本地分支后git rebase origin/分支名。

  三、提交代码

  1、git add <your_file>从工作目录提交代码到本地缓存;

  2、git commit -m "相关说明"提交add后的文件到本地当前分支;相关说明不超过80字符。如果超过,就commit时不加-m参数,在弹出界面第一行写简略标题,然后空一行,从第三行开始以段落形式写详细描述。完成以后输入 :wq 保存退出。

  3、如果所有修改过的文件都要提交,包括有删除的文件可以直接使用git commit -a(git add + git commit);

  4、如果要修改当前分支上一条提交 比如发现message错误,或少提交一个修改的文件,git add <your_file>后git commit --amend。(前提是还没有push,否则会起冲突)

  5、git push推送本地当前分支最新commit到远端仓库

   建立关联:如果要push到远程master分支,就git push origin master,如果要push到远程的其他分支,就git push origin xxx(xxx代表远程分支名)。

     未关联:git push origin local_branch:remote_branch

   local_branch为本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支。类似,git push origin :remote_branch,local_branch留空的话则是删除远程remote_branch分支。

  四、分支

  1、git branch -a查看所有分支(包括远程分支,显示为红色);

  2、git checkout xxx 切换到分支xxx;

  3、git checkout -b xxx 新建本地分支xxx并切换到分支xxx;

  4、git checkout -b xxx origin/XXX 新建本地分支xxx并切换到分支xxx,并把远程分支XXX更新到xxx;(本地分支和远端分支建立关联:git branch --set-upstream xxx origin/xxx

  5、git branch -d xxx 删除本地分支xxx(删除失败时把-d参数改为-D)

  6、合并xxx分支到master,首先切换到master分支,然后git merge xxx;

  7、删除远端分之后本地branch -a还能显示已删除的远端分支时?git fetch -p即可解决问题(-p, --prune           prune remote-tracking branches no longer on remote);

  五、遇到不好解决的问题,重新clone。然后如果发现需要输用户名和密码,就参考第一条解决方案。

原文地址:https://www.cnblogs.com/lovelyun/p/5079919.html