git 常用命令
1、删除远程库
使用命令git remote rm name (解除了本地与远程的绑定关系,并不是物理上删除了远程库)
使用前建议使用 git remote -v 查看远程库信息
2、分支管理
查看分支
使用命令git branch 可以查看所有分支,当前分支前面会有(*),操作如下:
$ git branch
dev
hotfix
* master
创建分支
使用命令git branch branch-name可以用来创建一条分支,操作如下:
$ git branch feature
$ git branch
dev
feature // 新创建分支
hotfix
* master
切换分支
使用命令git checkout branch-name或者git switch -c branch-name (新版本git提供) 可以用来切换分支,操作如下:
$ git checkout dev
Switched to branch 'dev'
$ git branch
* dev
feature
hotfix
master
创建并切换分支
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
使用命令git checkout -b branch-name 或者 git switch -c branch-name (新版本的git提供)
查看提交历史
1)git log ---- 按时间顺序列出所有的提交

2) git log -p或者 git log --patch :会显示每次提交所引入的差异,也可以限制显示的日志条目数量,使用 -2选项来只显示最近的两次提交

3) git log --stat :在每次提交的下面列出所有被修改过的文件、有多少文件被修改以及被修改过的文件哪些行被添加或是移除

4) git log --graph --pretty=oneline --abbrev-commit
--graph:在日志旁以 ASCII 图形显示分支合并图。

bug分支
git stash:将当前工作现场“储藏”起来,等bug修复之后恢复现场继续工作(在git stash之前一定要用git status确认没有Untracked files(未被追踪的文件(没有git add过))
1)例如:你正在dev分支上开发,发现之前完成某部分的项目存在bug,这时候你dev分支上还没有完成的代码还没有办法提交,这时候你可以使用git stash先将当前dev上开发的代码先隐藏起来,去修改bug
$ git stash
Saved working directory and index state WIP on dev: e843901 graph
现在使用git status查看工作区,就是干净的
2)这时候你需要的bug已经修改完成,已经提交完成了,这时候你需要找到你刚才‘隐藏’的代码继续开发,这时候你怎么找到刚才git stash隐藏的代码呢?,不要着急,Git提供了git stash list命令,可以解决你的疑惑,咱们接着往下看:
$ git stash list
stash@{0}: WIP on dev: e843901 graph
3)恢复工作现场
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
另一种方式是用git stash pop,恢复的同时把stash内容也删了(看不见stash@{0}: WIP on dev: e843901 graph)
可以多次stash,恢复的时候,先用git stash list 查看,然后恢复指定的stash,使用命令
$ git stash apply stash@{0} (使用git stash drop stash@{0}删除stash内容)
或者
$ git stash pop stash@{0}
将指定的提交应用到其他分支
git cherry-pick <分支名> :将该分支的最近一次提交应用到当前分支
查看工作区的状态
使用git status命令可以查看工作区的状态,如果git status告诉你有文件修改过,可以使用git diff查看修改内容


3、版本回退
在Git中,HEAD表示当前版本,也就是最新提交的,上一个版本是HEAD^,上上个版本是HEAD^^,往上100个版本可以写成HEAD~100
现在,我们要把当前版本回退到上一个版本,可以使用命令:git reset --hard HEAD^
如果想要回到未来的某个版本,怎么办?
如果命令窗口没有被关闭,就可以往上找,找到你想要回到的版本的commit_id,然后就可以使用命令:
git reset --hard <commit_id>(版本号没必要写全,前几位就可以了)
现在如果你版本回退到了某个版本,关闭了电脑下班回家,第二天早上你后悔了,命令窗口已经关闭,你找不到commit_id了怎么办?
这时候需要冷静,不要慌,吃口(后悔)药,Git提供了git reflog用来记录你的每一次命令

4、撤销修改
git checkout -- <filename>可以丢弃工作区的修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
1)readme.txt文件自修改后没有放到暂存区(也就是还没有git add过),现在,撤销修改就回到了和版本库一摸一样状态;
2)readme.txt已经添加到暂存区了,这时又作了修改,现在,撤销修改就回到了添加到暂存区的状态
总之,就是让readme.txt文件回到最近一次git commit或git add时的状态
如果该文件已经git add暂存区了,但是并没有git commit提交:
Git提供了命令:git reset HEAD <filename> 可以把暂存区的修改撤销掉,重新放回到工作区
5、删除文件
1)如果确实需要从版本库中删除文件,可以使用命令git rm <filename>,然后git commit
2)如果删错了文件,手动不小心删除了某些文件,这时候版本库中还存在这些文件,可以使用命令git checkout -- <filename> 还原
注意⚠️:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是需要小心,你只能恢复文件到最新版本,你会丢失最后一次提交后你修改的内容。
6、多人协作的工作模式
1)首先,可以试图用git push origin <branch-name>推送自己的修改
2)如果推送失败,则因为远程分支比你本地的分支更新,需要先使用git pull命令试图合并
3)如果合并有冲突,则解决冲突后在本地提交
4)如何没有冲突或者解决冲突后,再用git push origin <branch-name> 推送就能成功
注:如果git pull 提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch --set-upstream-to <branch-name> origin/<branch-name>
小结:在本地创建与远程分支对应的分支,使用命令:git checkout -b branch-name origin/branch-name
7、区别理解
git merge origin master :将origin merge 到master上
git merge origin/master :将origin上的 master分支 merge到当前分支
git push origin dev:master :将local repository(本地仓库)中名字为dev的分支的内容推送到romote repository(远程存储库)中名称为master的分支
30万+

被折叠的 条评论
为什么被折叠?



