git命令整理

摘自:https://www.liaoxuefeng.com/wiki/896043488029600

pwd  查看当前路径
git init  本地初始化仓库
vi readme.txt,编辑完后按esc,shift+zz
git add readme.txt
git config --global core.autocrlf true 解决“add时Git会把CRLF转换为LF,而check时仍旧为LF”
git commit -m "备注信息"
git status 查看文件状态
git diff 查看修改内容
git log/git log --pretty=oneline 查看历史记录
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上一个版本
git reset --hard HEAD~100 回退到上100个版本
cat readme.txt 查看文件内容
git reflog 查看提交历史记录(找到commit id)
git reset --hard 1094a 还原到commit id为“1094a”的版本
git checkout -- readme.txt 撤销修改就回到和版本库一模一样的状态,
撤销修改就回到添加到暂存区后的状态
用版本库里的版本替换工作区的版本(丢弃工作区的修改)
git reset HEAD readme.txt 从暂存区撤销(git add之前)
rm test.txt 删除文件管理器中的文件 //删除步骤1
git rm test.txt 从版本库中删除//删除步骤2
git remote 查看远程库的信息
git remote -v 查看远程库的详细信息
git remote add origin git@github.com:simplelinn/learngit.git 关联远程仓库origin
git remote rm origin 移除远程仓库origin
git pull --rebase origin master 先把远程库同步到本地库
git branch --set-upstream-to=origin/dev dev 指定本地dev分支与远程origin/dev分支的链接
git pull 把最新的提交从origin/dev抓下来,本地合并,解决冲突,再推送
git push -u origin master 再(第一次)推送master分支的所有内容
git push origin master 后面推送最新修改

【多人协作】
1、首先,可以试图用git push origin <branch-name>推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3、如果合并有冲突,则解决冲突,并在本地提交;
4、没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --
set-upstream-to <branch-name> origin/<branch-name>。
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的
名称最好一致;

##遇到推送不上的问题##,参考了http://sigechuizi.cn/article/75
git config --global user.name "simplelinn"
git config --global user.email "2076592250@qq.com"
ssh -T git@github.com 验证是否关联成功

git branch 查看分支列表
git switch master 直接切换到已有的master分支
git checkout -b devgit switch -c dev 创建并切换到dev分支(git branch dev,git checkout dev)
git checkout -b dev origin/dev 小伙伴创建的dev分支//步骤1
git push origin dev 小伙伴创建的dev分支提交后推送到远程//步骤2
git add "file.txt" //
git commit -m "branch test" //
git checkout master 切换到master分支
git merge dev 把dev分支的工作成果合并到master分支上
git merge --no-ff -m "merge with no-ff" dev 请注意--no-ff参数,表示禁用Fast forward
(--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出
来曾经做过合并。)
git branch -d dev 合并完成后,就可以放心地删除dev分支了
git branch -D <name> 强行删除一个没有被合并过的分支
git log --graph 查看分支合并图

git stash 有临时任务,把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看工作现场
git stash apply 恢复工作现场(stash内容并不删除,要用git stash drop来删除)
git stash pop 恢复工作现场(恢复的同时把stash内容也删了)
git stash apply stash@{0} 然后恢复指定的stash
git cherry-pick 4c805e2 在master分支修复bug,在dev分支“重放”的命令
(如果在dev分支上修复bug,然后在master分支上“重放”,需要git stash命令保存现场,才能从dev分支切换到
master分支)

原文地址:https://www.cnblogs.com/laiylm/p/13194243.html