直接跳过了git安装和ssh配置的过程,主要记录一下都用git来干什么。
/* 设置本地用户名和密码 */
git config --global user.email "个人邮箱"
git config --global user.name "姓名"
/* 提交修改到暂存区 */
git add .
/* 查看修改了哪些文件 */
git status
/* 查看具体修改的内容 */
git diff
/* 提交修改到本地 */
git commit
/* 拉取代码 */
git pull
/* 推送代码 */
git push
/* 查看提交记录
* git log -n
* n是数字表示显示几条历史记录
*/
git log
/* 修改某文件,但是又不想修改了,且未进行git add .操作
* 解决方法:
* filename为文件名
*/
git checkout filename
/* 修改某文件后,进行了git add .操作,但是不想修改了
* 解决方法:
*/
git reset HEAD filename
/* 修改了某文件后,进行git add .且进行了git commit操作,需要回退前一步(进行git add .但未进行git commit)
* 解决方法:
*/
git reset --soft HEAD^
/* 修改了某文件后,进行git add .且进行git commit操作,需要还原文件(本文件未被git add .且未进行git commit)
* 解决方法:
*/
git reset --hard HEAD
/* 回退到上个版本(commit ID版本)的状态
* 解决方法:
*/
git reset --hard commit ID
/* 提交之后想追加提交
* 解决方法:
*/
git add .
git commit --amend
/* 自己提交的代码(未入库)与别人的提交(已入库)产生冲突
* 第一种解决方法:
*/
拷贝修改的文件,删除自己的分支:git branch -D yourbranch
(最好不要在本地master分支修改内容,保持干净)进入本地master分支:gut checkout master,更新代码:git pull
重新拉分支:git checkout -b yourbranch,通过对比软件比如beyond compare对比修改冲突代码后,重新提交
/* 第二种解决方法 */
git fetch
git rebase origin/master
git status
解决冲突
git add .
git rebase --continue
/* 克隆远程仓库
* 默认主分支
* 也可以通过-b参数指定分支
*/
git clone -b ssh链接
/* 查看关联了哪些远程仓库 */
git remote -v
/* 添加关联远程仓库 */
git remote add ssh链接
/* 查看当前分支
* -a查看所有分支
*/
git branch -a
/* 基于远程mybranch分支新建本地localbranch分支 */
git checkout -b localbranch origin/mybranch
/* git cherry-pick代码
* 可以理解为“挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上
*/
git cherry-pick
/* git会自动根据commit ID查找所属分支,并把分支上该commit ID对应的提交内容增加到当前分支 */
git cherry-pick commit ID
/* 把branchname分支的最后一次提交增加到当前分支 */
git cherry-pick branchname
/* 出现冲突时放弃操作 */
git cherry-pick --abort
/* 默认启用fast-forward方式进行合并,不会显示feature,只保留单条分支记录。
* git直接把HEAD指针指向合并分支的头,完成合并。
* 不过这种情况如果删除分支,则会丢失分支信息。
* 因为这个过程中没有创建commit。
*/
git merge
/* 用来把一些不必要的commit进行压缩,此时文件已经同合并后一样了,但不移动HEAD,不提交。
* 需要进行一次额外的commit来“总结”一下,然后完成最终的合并。
*/
git merge --squash
/* 强行关闭fast-forward方式。可以保存你之前的分支历史。
* 能够更好的查看merge历史,以及branch状态
*/
git merge --no-ff
最后贴几个Git学习资料: