git远程服务器
git remote add origin <url>
取消远程服务器 关联
git remote rm 远程仓库名
更新远程服务器上的分支列表
git remote update 远程仓库名 --prune
查看已关联的远程服务器
git remote show
显示远程仓库与对应服务器地址
git remote -v
拉取远程仓库中分支到本地
git fetch 远程仓库名 远程分支名 本地分支名
强制 推送push 本地版本 到 远程服务器
git push --force origin master 将本地master分支强制推送到远程仓库origin
将本地的git 仓库 ,覆盖远程仓库
1.关联远程仓库 git remote add origin <url>
2.推送本地master分支到远程仓库,作为初始结点 git push --force --set-upstream origin master
将本地分支与远程分支建立关联
1.切换到需要关联的本地分支 git checkout local
2.与远程分支建立关联 git branch -u origin/serverfix
建立关联后
1 . git push ,git pull 时都不需要加上远程分支名了,只需先切换到 要进行推送或拉取的 本地分支即可
2. 可以删除远程服务器上 这个已经关联的 远程分支 git push origin --delete 本地关联分支名
3. 查看本地与远程分支 的关联关系 git branch -vv
版本回退
一 - HEAD指针,指向最后一次commit的状态 ; 二 - Index 预计的下一次提交的快照 (暂存区的索引);三 - Working directory 沙盒 (未提交到暂存区和历史记录的本地实际代码)
git reset 版本号 [filename],默认为 --mixed模式 ,将 HEAD指针 和 缓存区的代码 设置为版本号的状态
git reset --soft 版本号 ,仅将HEAD指针 指向版本号
git reset --hard 版本号 ,将HEAD指针 ,缓存区代码 和 工作区代码 全都设置为 版本号的状态
git reset --hard eb43bf file.txt 会将暂存区Index的文件和工作区的文件 状态变成 eb43bf版本的状态
合并中间的过多git log
1.将仅 将 git HEAD指针移到倒数第二个需要保存的版本号上 git reset --soft 版本号
2. --soft使工作区和缓存区的代码并未改变,直接提交, git commit ,
这时如果原来git log -10 的版本号有 1,2,3,4,5,6,7,8,9,10,而第一步中的版本号为3,现在git log -3 的显示则为 1,2,3,11 ,从而减少了中间的git log .
将本次提交的内容,覆盖上次提交
git commit --amend
如果上次提交过 git commit -m "commit last" ,然后又进行了修改,git add forgotten-file ,这时 使用 git commit --amend -m "commit second"则使用git log 查看,只有第二次的提交记录。
撤销修改
工作区有修改,还没提交到缓存区,撤销工作区的修改 git checkout filename 撤销指定文件的还没add 的修改 / git checkout -f 撤消所有还没add 的修改
取消最后一次add或commit之后的修改,回到刚刚add或commit后的状态 git checkout -- filename
撤销已经add 还没commit 的修改 git reset HEAD filename ,将缓存区的文件变为上次commit时的状态
取消对文件跟踪
删除暂存区中 mysite/__pycache__下的所有文件(保留本地文件夹)
- git rm -r --cached mysite/__pycache__
仅取消对某个文件的追踪(保留本地文件)
git rm --cached fie.txt
撤销刚刚的推送到远程分支
1.将本地的分支的HEAD 回退 到 需要的版本号
2.将这个本地的分支强制推送到远程分支 ,远程分支的状态就变为和本地分支一致。 git push --force
提交
git commit -am "备注内容“ 相当于 git add ,git commit -m "备注内容”两步 。 不过对于新增加的文件 ,-am 不会添加进去,需要单独 git add newfile
切换分支
在当前分支上做出修改后并没add,这时新建分支并切换过去,然后add,commit,修改就会移到新建分支上了。原分支上不再有修改的记录
git checkout branchname
合并分支
合并分支前,需要切换到版本号较小的分支上,然后将有更改的分支上的内容合并到当前分支
git merge brach2
删除分支
git branch -d branch3 强制删除 git branch -D branch3
分支管理
- 团队协作中,一般会有一个专门用于汇总各个开发者的远程仓库(公开库)管理者
- 个个开发者 ,从远程公共库拉取基准代码 ,然后在本地创建分支 ,进行开发
- 开发完成后,推送到远程分支
- 远程仓库管理者 ,收到开发者的要求拉取合并远程分支的请求后,拉取,并合并分支到远程公开库
查看日志
git log --oneline --decorate --graph --all 以图形简略的形式显示所有日志
-n 查看最近的n条日志
--oneline 已一行的空间显示一条日志
- git log -p -2 查看最近两次提交之间的差异
- --graph 显示ASCII图形表示的分支合并历史
- --stat 显示每次更新的文件修改统计信息
git diff <filename>
- 查看文件filename 改动前和改动后的区别
- diff 即different
- git diff 版本号1 版本号2 --stat 查看两个版本中的有差异的文件
- git diff 版本号1 版本号2 文件路径 查看两个版本号间的指定文件的具体差异
- git diff 分支1 分支2 --stat 查看两个分支间的有差异的文件
- git diff 版本号1 版本号2 文件路径 查看两个分支间的指定文件的具体差异
- git diff 文件名 查看当前HEAD指向与工作区间 的文件的具体差异