撤销:git reset 相当于游戏中的存档 回档这个词比较好理解
如果还没 git add file : 使用该指令进行撤销: git checkout -- fileName
如果已经git add file : 但是没有 git commit -m "" 分两步操作
b-1、git reset HEAD readme.txt 撤回到工作区 修改的内容还是保持
b-2、git status
b-3、git checkout -- file **修改的内容,与上次commit一样**
如果已经git add file 并且已经 git commit :
通过 git log 或者 git log --pretty=oneline 、git reflog、git log --graph
找到对应的commit id进行回退:git reset --hard 1094a 修改的内容没了 未add状态
git reset 1094a 直接撤回到工作区,未add状态,并且保存修改的内容
git reset --keep [commit] 保持暂存区和工作区不变
**
git reset –-soft :
**
意味着工作区不会收到影响,并且修改的文件从仓库区也进入了暂存区,执行git status 发现没有东西需要add到暂存区。 撤回到已是add状态
删除
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit了
a、git rm test.txt
b、git commit -m "remove test.txt"
另一种情况是删错了,因为版本库里还有
git checkout -- test.txt
提交
git add .
git commit -m ""
git rebase 可以省去多次提交记录
git --continue 冲突后需要这个命令执行 再push
git push
查看差异
git diff 查看工作区与上次commit后的修改
git diff HEAD 查看暂存区(add后)与上次commit后区别
分支创建及跟踪
git checkout --track origin/new-branch
将创建mybranch和跟踪origin/abranch
git checkout -b branch origin/branch
将只创建' abranch',而不是具有不同名称的分支
使用Git 2.23(Q9 2019),将使用新命令git switch:git switch -c <branch> --track <remote>/<branch>
refusing to merge unrelated histories
拒绝无关的历史合并 :git pull origin master --allow-unrelated-histories
忽略文件提交
git rm -r --cached .
git add .
// 或者省略 add 这个步骤
git commit -m 'update .gitignore'
git push origin master
git 切换远程已有分支
本地分支a,且没有分支b,想要切换到远程分支b
1. git remote update origin --prune 更新本地分支列表与远程一致
2. git branch 查看本地所有分支,是否已经更新出分支b
以下不是必须
3. git checkout b 切换到分支b
4. git merge a 合并分支a到当前分支b上,该解决冲突的解决冲突
5. git push 更新到远程 (如果有需要的话)
hint: Updates were rejected because the tip of your current branch is behind
版本不一致导致
有如下3种解决方法:1.使用强制push的方法:git push -u origin master -f这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。2.push前先将远程repository修改pull下来git pull origin mastergit push -u origin master3.若不想merge远程和本地修改,可以先创建新的分支:git branch [name]然后pushgit push -u origin [name]
error: The following untracked working tree files would be overwritten by merge:
git fetch --all
git reset --hard origin/master
The repository for this project is empty(添加远程仓库)
Create a new repository
git clone git@git.runxsports.cn:zhijue/android/finance-risk.git
cd finance-risk
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder
cd existing_folder
git init
git remote add origin git@git.runxsports.cn:zhijue/android/finance-risk.git
git add .
git commit -m "Initial commit"
git push -u origin master
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@git.runxsports.cn:zhijue/android/finance-risk.git
git push -u origin --all
git push -u origin --tags
待续……
学习网站:
https://blog.csdn.net/u012702547/category_9270926.html
https://www.cnblogs.com/chenwolong/p/GIT.html