首页 > 技术文章 > git 使用总结

FG123 2018-08-10 15:24 原文

1. 配置ssh:

执行ssh-keygen 命令 一路回车 把key复制到GitLab的deploy_keys  填入New Deploy Key
vim .bashrc  
为了在git中显示当前分支的名字 在最后写入:
function git_branch {
  branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
  if [ "${branch}" != "" ];then
      if [ "${branch}" = "(no branch)" ];then
          branch="(`git rev-parse --short HEAD`...)"
      fi
      echo " ($branch)"
  fi
}

export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '


然后source ~/.bashrc使其生效

 

 

2. git 操作:

 

查看分支:
git branch -a  # 查看所有分支
git branch -r   # 查看远程分支

基于某分支创建分支:
git checkout xxx 分支
git checkout -b xxx_new 分支


删除分支:
git branch -D xxx  # 删除本地分支
git push origin --delete xxx  # 删除远程分支


提交操作:
git add .  或 git add -A
git commit -m "commit信息" 或git commit -am "追加的commit信息"


合并commit:
git rebase -i HEAD~5  表示合并之前的5个commit   不要的commit的pick改为s  保存退出(注意:第一个commit不能修改)


修改commit的名字:
git commit --amend

git log 查看commit记录
git diff 查看文件改变

合并远程代码:
git fetch server develop
git rebase server/develop

解决rebase的冲突问题:
1. 先解决冲突,删掉不需要的代码
2. git add .   
3. rebase --continue 就切换到了分支上,再push即可
4. 如果解决了冲突又重新rebase了,git rebase --skip即可


取消git的修改:
git checkout -- .  清除当前已修改的信息,代码撤回到修改前


回滚commit:
git reset --soft HEAD~1    回滚上一个commit并保留修改
git reset --hard HEAD~1   回滚上一个commit,不保留修改


推送代码:
git push origin xxx
git push -u origin xxx  推送并更新
git push -f origin xxx  强制推送


git ignore文件更新
git rm -r --cached .  清空已经被gitignore忽视的文件


忽略git对文件进行权限检查:
git config core.filemode false

 

推荐阅读