Git的常用操作总结
Git初始化绑定用户
git config --global user.email "你的邮箱"
git config --global user.name "你的用户名"
生成ssh密匙
一般生成的密匙文件在C:\Users\用户.ssh目录下
image.pngssh-keygen -t rsa -C "你的邮箱"
将密匙配置到GitHub
image.png项目绑定远程仓库
git初始化本地仓库
git init
将本地仓库与远程仓库进行绑定
git remote add origin 远程仓库的URL
//例如 git remote add origin https://github.com/gujunling/test.git
上传代码流程
git stash 备份当前工作区的内容
git pull 下载git仓库的代码同步到本地
git stash pop 读取最近一次保存的内容,恢复工作区全局搜索 “>>>”
如果产生冲突
找到对应位置解决冲突,选择保留正确的代码
git add -A . 将所有改动文件加入git暂存区
提交代码到本地仓库
第一次提交:
git commit -m "message"
多次提交,且前一次没有提交到远程仓库:
git commit --amend
提交代码到远程仓库
git push origin 分支名称
其他常用命令
git status 查看当前状态
git branch 查看本地所有分支
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git branch dev 建立一个新的本地分支dev
git checkout dev 切换到远程dev分支
git fetch 相当于是从远程获取最新版本到本地
git merge origin/dev 将分支dev与当前分支进行合并
git log 看你commit的日志
git diff:是查看 workspace(工作区) 与 index(暂存区) 的差别的。
git diff --cached:是查看 index(暂存区) 与 local repositorty(本地仓库) 的差别的。
git diff HEAD:是查看 workspace 和 local repository 的差别的。(HEAD 指向的是一次提交)
git stash list
读取Git栈内的所有备份
git stash clear
清空Git栈
fetch和 pull的区别
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
<pre>git fetch origin master
git log -p master..origin/master
git merge origin/master</pre>
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述几个命令可以用以下替代
<pre>git fetch origin master:tmp
git diff tmp
git merge tmp</pre>
git pull:相当于是从远程获取最新版本并merge到本地
其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
遇到问题时的处理
git add 错误:
撤销上次 add 里面的所有更改的文件
git reset HEAD
撤销某个文件
git reset HEAD filename
git commit 错误:
查看节点
git log
撤销上一次的 commit
git reset commit_id
还没有 push 的时候:
回退到上一个代码提交的节点,代码还是自己修改过的
git reset commit_id
git reflog
查看你本地提交记录
git reset --hard HEAD@{2}
回退到本地最新代码的位置
GIt修改仓库地址
git remote set-url origin XXXX地址