Git 命令使用整理
1。git init
2. git add
3. git commit
4. git status
5. git diff 查看没有暂存的文件(git diff --cached查看已暂存的文件)
6. git log
7. git checkout (撤销未提交的修改,没add时的文件)
若已add,则先取消添加再撤销
8. git reset HEAD <file> (取消添加)
git checkout <file> (撤销修改)
9. git reset --hard HEAD^ (回退到上一个版本)
git reset --hard HEAD^^(回退到上上一个版本)
10. git reflog (查看之前操作记录,找到要恢复的版本)
git reset --hard ad2080c
Git中从远程的分支获取最新的版本到本地:
- git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master git log -p master…origin/master git merge
origin/master
以上命令的含义: 首先从远程的origin的master主分支下载最新的版本到origin/master分支上 然后比较本地的master分支和origin/master分支的差别 最后进行合并
git没有changId解决方法:
1、git branch work(从最新节点建立分支,相当于将自己的修改备份到新的分支)
2、git reset --hard HEAD~10(强制回滚多个节点)
3、git status
如果显示nothing to commit, working directory clean,跳到5.
如果显示has x commit,xx git push 跳到2.
4、git clean -df
5、git pull(使得当前分支和线上统一)
6、git merge --squash work(将最开始建立的分支中的内容合并回来)
7、git commit
8、git push
问题记录:
1. 无change ID
第一步:scp -P 29418 -p wang.mingbo@gt.moretv.cn:/hooks/commit-msg .git/hooks/
第二步:git commit --amend
第三步:git log -1
第四步:git push origin HEAD:refs/for/branches
2.提交有冲突解决方案:
1. git fetch origin(取回该分支更新)
2. git stash(保存当前的工作现场)
3. git pull --rebase
4. git status (显示冲突文件both modified)
5. vi AndroidManifest.xml (编辑冲突文件)
6. git add AndroidManifest.xml(add编辑好的文件)
7. git rebase --continue(解决好冲突后执行)
8. git push origin HEAD:refs/for/branches(提交)
3.从master分支切换到dev分支
- git stash (保存当前分支上的修改,如果不暂存,可以通过命令git checkout – 恢复为服务器上一致)
- git checkout -b dev origin/dev(创建本地dev并切换分支,对应服务器origin/dev分支)
- 切回master分支时,可以用git stash pop 恢复本地修改
- 本地已有该分支,切换方法 git checkout master(分支名称)
4.提交无changeID,但git log 中显示有changeID
原因:
修改过文件后,git pull ,自动merge云端与本地
1. 切换到新建分支 git checkout -b bugfix
2. git reset --soft HEAD^
3. git reset --soft HEAD^2
4. git pull --no-commit origin branches
5. git commit -m ""
6. git push origin HEAD:refs/for/branches
7.删除新分支 git branch -D bugfix
5.撤销上一次提交(可能因为多提交了.classpath文件)
1. git reset --soft HEAD~ 移动HEAD
2. git log 再查看log,发现刚才的提交 commit_id已经没有了
3. git status 查看文件状态
4. git reset HEAD .classpath 撤销对.classpath的修改
5. git commit --amend 再次提交即可
6.撤销已经push到服务器的1次提交
git reset --soft head~ // 撤销提交
git push --force // 推送到服务器
- 已提交到BBT的代码,冲突解决
1. 首先执行 git reset --soft head~ // 撤销提交(可执行多次,直到git status能看到自己的代码改动)
2. 执行 git push --force // 推送到服务器
3. 更新自己的代码库,可以手动更新
4. 执行 git reset 重置自己的修改
5. 执行 git stash save 缓存自己的修改
6. 执行 git pull 拉最新的代码
7. 执行 git stash pop ,处理冲突
8. 重新提交git commit,git push