Git 备忘

一.安装

linux 1.redhat:yum install git
      2.ubuntu:apt-get install git

windows 下载http://msysgit.github.io/安装,一切默认

  设置用户名及邮箱
git config --global(local为仓库级) user.name "your name"
git config --global user.email "youremail@***.com"

二.关联github

  获取ssh秘钥:ssh-keygen -t rsa -C "youremail@***.com"
  将当前用户目录下 ~/.ssh/id_rsa.pub(公钥)内容添加至github的ssh key(相当于防伪标识)
  关联远端仓库:git remote add origin [email protected]:yourgithubName/yourRepo.git
  查看仓库地址:git remote -v

三.克隆 、推送、同步

  克隆:git clone [email protected]:yourgithubName/yourRepo.git
  推送:(git push <远程主机名> <本地分支名>:<远程分支名>)git push origin branchname(一般为主分支master视开发情况而定)
  同步:(git pull <远程主机名> <远程分支名>:<本地分支名>)git pull origin 若出错提示无当前分支追踪信息,则  git branch --set-upstream   本地分支 origin/远端分支 使本地分支与远端关联
        git pull origin master ----allow-unrelated-histories

四.自己玩
 
  创建分支:git branch branchname
  切换分支:git checkout (-b 并创建) branchname
  删除分支:git branch -d branchname
  合并分支:git merge branchname
  查看分支:git branch
  查看远程分支:git branch -r
  查看所有分支:git branch -a
  获取远程分支:git checkout -b 本地分支名 远程分支名
  删除远程分支:git branch -r -d origin/branch-name
 
  添加文件:git add filename(暂存区)
  提交文件:git commit -m "your comment"

  雪藏未提交修改:git stash
  查看雪藏:git stash list
  回复雪藏:git stash apply [stash@{1}]
  删除雪藏:git stash drop [stash@{1}]
  弹出雪藏:git stash pop
 
  查看状态:git status
  查看提交历史:git log (--graph 图形)
  比较差别(当前与repo):git diff filename
  查看命令历史:git reflog

  退回到某一次提交:git reset --hard commitId(丢掉commitId后的提交内容)
                    git reset --soft commitId(commitId后的提交内容退回工作区)
  撤销工作区的修改:git checkout -- filename

  在提交代码(push -u origin master)的过程中如果遇到“Permission denied (publickey,gssapi-keyex,gssapi-with-mic).”错误
Windows:
1. 打开CMD
2. echo. host github.lngtop.com >> %HOMEPATH%\.ssh\config
3. echo. hostname github.lngtop.com >> %HOMEPATH%\.ssh\config
4. echo. port 2222" >> %HOMEPATH%\.ssh\config
Linux/MacOS:
1. echo -e "host github.lngtop.com\nhostname github.lngtop.com\nport 2222" >> ~/.ssh/config
(github.lngtop.com 换成自己在github上的repo地址)

五.
  1.忽略部分文件(如编译后的class文件、settings等 不必提交到远端的东东)
    在代码目录下新建.ignore文件,内如如下
     *.class              //要忽略的文件后缀名 *为通配符
     *.classpath
     *.project

     pay/.settings/        //要忽略的路径
     pay/WebRoot/WEB-INF/classes/
  如果这些文件还没提交到远端,一切Ok。
  若果已经提交了 那么需要先 git rm(settings要先备份) 再重新 git commit ,然后再git push提交到远端(再将备份还原)。以后git 就不会再检查这些文件了
 
  2.创建空分支
    git checkout --orphan branchname(新建分支没有commit log,但内容俱全)
    git rm -rf . 清空所有内容(此时branchname分支为空,执行commit后分支可见)

六.日常工作流程
 
  1.git checkout develop(若develop分支已存在) 切换到日常开发分支
  2.git pull origin develop 同步远程develop到本地develop分支
  3.git checkout -b feature1 基于develop分支创建并切换到feature1分支
 
  4.开始开发...完成后commit(可以有多个)

  5.git checkout develop 切换到develop分支
  6.git pull origin develop 再次同步远程develop到本地develop分支,因为有可能在自己进行开发时别人向远程提交了代码,这时要在提交前保持本地与远程同步
  7.git checkout feature1 再次切换到feature1分支
  8.git rebase develop
   1)没有冲突:
       git push origin feature1:develop 将本地feature1分支推送至远程develop分支
   2)有冲突:
       修改冲突文件
       git add .
       git rebase --continue 继续rebase (git rebase --abort 取消rebase 回到rebase开始前的状态)
       git push origin feature1:develop 将本地feature1分支推送至远程develop分支
 

猜你喜欢

转载自744722813.iteye.com/blog/2197793
今日推荐