git常用语句

1、常用命令
git checkout -b liukai origin/liukai 新建本地分支liukai与远端分支liukai关联

git checkout -b liukai 新建本地分支liukai 并切换到liukai
git branch -d liukai 删除分支 -D强制删除(当创建的分支没有merge过而要删除的时候用——D)
git checkout -liukai 切换到liukai分支
git branch -v 查看版本号码信息以及提交信息
git branch -vv 查看本地和远程的追踪关系
git branch --merged 查看哪些分支已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游。):
git branch -r 查看远程分支
git branch -a 查看所有分支

合并分支到主分支
git checkout lk 切换到lk
git merge master 合并到主分支

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>
1、初始化一个Git仓库,使用git init命令
在一个文件夹下打开git执行 git init命令,就可以从远端拉代码,开启版本的操作

2、git diff 显示本次修改的差别,和git status操作时间相同

3、git log 查看每次提交的信息(commit) , q退出
git log--pretty=oneline 简练查看历史提交信息


4、git checkout -b liukai origin/liukai


5、利用 git push --set-upstream origin branch_name来在远程创建一个与本地branch_name分支同名的分支并跟踪;
利用 在本地创建和远程分支对应的分支,
先git pull
再使用git checkout -b branch-name origin/branch-name 来在本地创建一个与 branch_name 同名分支跟踪远程分支。

6、版本回溯:
git log 查看当前分支的提交历史
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,
上一个版本就是HEAD^,
上上一个版本就是HEAD^^,
当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD

Git提供了一个命令git reflog用来记录你的每一次命令
然后git reset --hard版本号(根据——m""的记录来查找所需的版本号)

7、查看修改信息

git diff HEAD -- readme.txt
查看readme.txt修改结束commit以后得改变

8、提交撤回

git checkout -- file:没有add的修改 撤回对file的修改,命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

git reset HEAD readme.txt :已经add进入缓存区,撤销add的效果, 然后丢掉工作区的修改 git checkout --file:没有add的修改

若已经commit 进入版本库 进行版本回退即可。

9、删除文件
rm 或者git rm 以后如果确实要删除,add commit 删除即可
若是误删执行以下命令恢复即可
git checkout -- test.txt

10、远程库
本地文件夹为learngit
github创建一个同名文件,然后在本地执行下面命令关联远程仓库
git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master第一次推送master分支的所有内容;
每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
此时会默认本地和远程master的对应track关系

11、从远程库克隆
git clone ssh链接 复制代码到本地

12、解决冲突
开始的时候master和liukai分支相同,然后
master 修改了readme.txt 已经commit到版本库
liukai 分支也修改了readme.txt 已经commit到版本库
两个分支修改的内容不一致
在master上merge liukai的时候会在read.txt 上面有冲突,手动调整至自己想要的状态,然后add commit即可

git log --graph命令可以看到分支合并图。

13、git merge --no-ff -m""
这样合并以后可以看到merge造成变的日志(在git log中)

14 、git stash 把当前分支未开发完成的代码暂时封存,
其他分支操作完成,merge到master分支以后,
切换到git stash 分支上面,git stash pop 删除stash并恢复以前未开发完成的代码的进度。

15、未经合并的分支在删除的时候用 git branch -D强制删除(当创建的分支没有merge过而要删除的时候用——D)

16、git remote 查看远程库
git remote -v 查看远程库更加详细的信

多人协作的模式

因此,多人协作的工作模式通常是这样:

首先,可以试图用git push origin <branch-name>推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

17、ignore不起作用的问题是因为远程库内已经有了这些文件,已经被追踪,把他们删除就行,ignore就起作用了,以后这些文件更新就不会提交到远程库

18、对应远程库有更新时,本地推送会失败,先拉远程库到本地,解决冲突再push
1)远程库更新的文件与本地不是一个,直接git pull 然后将本地推送即可
2)远程库更新的文件与本地更新的文件有的在同一个文件上,pull的时候手动解决冲突,然后commit提交至本地代码库,完成pull ,然后再push

19、基于最新分支进行开发
先从master拉取最新代码,
然后在liukai分支merge即可
可能出现的问题:
1)若liukai分支与master分支同时修改一个文件 就要手动修改然后commit完成

 

 

1, git remote -v  查看远程仓库
2, git branch -a 查看远程仓库分支
3, git config --list 查看配置信息
4,git branch --set-upstream-to=origin/liukai liukai
5,get branch -vv 查看对应远程分支和本地分支关系
6,git branch -d dev 删除本地dev分支,再删除远程Dev分支 git push origin --delete dev
7,git diff liukai origin/liukai 查看本地与远程分支分差别
8,git reset --hard 忽略本地所有修改
9,git log --pretty=oneline
10,git reset --hard [commit哈希值]
11,git reset --hard HEAD~3 会将最新的3次提交全部重置,就像没有提交过一样。
12,revert代码的时候,会重新生成一个merge request ,需要通过合并实现revert,都是管理员进行操作
13,git push origin liukai:liukai 本地建立liukai分支,推送到远端,建立liukai分支,并且建立追踪关系
14,git stash save "save message" : 切换分支的时候 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
15,git diff gtransport.xml 查看 gtransport.xml的变化
16,vimdiff FILE_LEFT FILE_RIGHT
17、git checkout . 就是从最近一次 commit 或者仓库中拉取(检出)代码,会覆盖掉当前 unstash 的修改
18、git rebase
再来说一下rebase, 这个命令会始终把你最新的修改放到最前头。
比如你对主branch进行rebase以后, 你的所有修改就会在主branch当前所有的修改之前。你会更有信心保证你的代码运行畅通无阻。
通过你自己的测试以后, 你就可以放心的把代码合并到主的branch里面了。
这里值得一提的是,rebase通常是发生在自己的个人branch上的。它的基础就是现有的主branch。
这样做的好处就是保证每个人的代码都可以运行在当前最新的主branch的代码上
在自己的分支开发代码时,master分支发生了改变
1,git merge
拉取最新的master 回到自己分支,将最新的master合并到自己分支上,有冲突解决冲突, merge reuest的时候会保留自己分支所有的commit信息并且传给master
会有merge master 的commit
2、git rebase
拉取最新的master 回到自己分支
git rebase master,有冲突就解决冲突,解决后直接git add . 再git rebase --continue
此时再merge request master分支不会再新增commit(merge master)
本地的commit hash值也发生改变,但是都是在最前面,把merge request 的commit 防到了自己的分支改变之前
https://www.jianshu.com/p/6960811ac89c
https://www.liaoxuefeng.com/wiki/896043488029600/1216289527823648

19、git submodule update --init --recursive
等价于
git submodule init
git submodule update
posted @ 2021-07-20 08:41  刘凯_tju  阅读(105)  评论(0编辑  收藏  举报