入门文章
https://www.cnblogs.com/riverdubu/p/6491944.html
莫烦教程
0.log、status的简化模式
(1)log每个内容只显示一行: $ git log --oneline # "--oneline"
以图形方式查看:git log --oneline --graph
(2)status 的缩写模式: $ git status -s # "-s":
1.查看git diff
(1)git diff :没有add的代码(modified),与commit的代码(unmodified)的区别
(2)git diff --cached :add的代码(staged),与commit的代码(unmodified)的区别
(3)git diff HEAD :上面两个的合并,modified和staged,与unmodified的区别
2.将这次commit合并到上一个 commit
$ git commit --amend --no-edit # "--no-edit": 不修改-m
3.add和commit的回退
(1) add的回退
$ git reset 1.py
(2)commit的回退到以前的commit状态
1.回到 上一次的 commit
$ git reset --hard HEAD
2.回到上上次的 commit
$ git reset --hard HEAD^
3.回到特定的commit
$ git reset --hard c6762a1
(3).查看全部的commit操作,可以找到消失的commit
$ git reflog
(4)单个文件回到以前的状态
commit没有改变,只是将单个文件回退到某个commit
$ git checkout c6762a1 -- 1.py
4.add和commit连用,只对修改,不对新文件
$ git commit -am "change 3 in dev" # "-am": add 所有改变 并直接 commit
5.分支操作
(1)建立分支
$ git branch develop
(2)切换分支
$ git checkout develop
(3)建立并且切换到分支
$ git checkout -b develop
(4)删除分支
$ git checkout -d develop
(5)将develop分支合并到master上,并存到新的commit中
$ git checkout master
$ git merge --no-ff -m 'merge develop to master' develop # '--no-ff':关闭fast forward模式,将merge操作作为一个commit
do something合并冲突...
$ git log
如果有冲突,可以随意修改,因为master和develop并没有关系,可以将master修改成你想要的样子
合并完成之后需要继续commit
$ git commit -m "solve conflict" #字符串必须用双引号
(6)将develop分支合并到master上,存到master的最后一个commit中
$ git checkout master
$ git rebase develop
合并冲突...
$ git add .
$ git rebase --continue #继续
# $ git rebase --skip # 跳过 #$ git rebase --abort #退出
# master中最后一个是修改后的commit,上一个是develop的commit,那再上面的commit是谁的commit?
6.暂存修改
git stash # 将修改暂存
......
git checkout -b another_job
do something
git checkout master
git merge --no-ff -m 'merge another job' another_job
git commit -am 'another job'
......
git stash list # 查看暂存的列表
git stash pop # 恢复暂存的修改
7.远程管理
git push -u origin develop #-u 本地的master分支推送到origin主机,同时指定origin为默认主机,
后面就可以不加任何参数使用git push了
(1)origin是项目地址:https://gitee.com/DJSHICHAOREN/rec_caption.git,develop是项目分支
(2)如果要选择本地的分支,则git push origin master:origin,表示把本地的master分支push到远程origin项目的origin分支上
特别注意:
1.如果要将本地的代码push到服务器的origin时,本地的分支必须要和origin上的分支同名
2.如果有commit没有在服务器端被合,可以git push -f origin/develop
3.将这次的commit添加到上一个commit中:git commit --amend
4.拉下来的代码安装需要的库pip install -r requirements.txt
5.fetch服务器代码与merge服务器代码的格式不同
(1)git fetch server develop
(2)git merge server/develop