三大操作系统
2020-04-09 23:31:55 0 举报
AI智能生成
廖雪峰git知识梳理(求点赞蟹蟹~)
作者其他创作
大纲/内容
初始化
git config
git config --global color.ui true
文件名显示颜色
git config --global alias.<abbr> <full>
用缩写代替命令
具体
st
status
co
checkout
ci
commit
br
branch
unstage
'reset HEAD'
last
'log-1'
lg
使得日志显示极为清楚
每个仓库的配置文件都放在.git/config中
alias后删掉一行即可删除别名
当前用户的配置文件在用户主目录下的隐藏文件.gitconfig中
--global
全局参数,以后本机(当前用户)上所有git仓库可用
如果不加,则只对当前的仓库起作用
mkdir
在工作目录下,建立一个新的子目录
pwd
显示当前目录
git init
把这个目录变成Git可以管理的仓库
git配置文件网站
.gitignore
忽略某些文件
git add <file>时发现被忽略了
git add -f <file>
强制将被忽略的文件添加到git
git check-ignore
检查.gitignore哪里写错了
使用代理
git config --global http.proxy http://127.0.0.1:1080<br>git config --global https.proxy http://127.0.0.1:1080 <br>
取消代理
git config --global --unset http.proxy<br>git config --global --unset https.proxy <br>
ssh
当在远程库上设置了SSH 之后还是报错连接超时
这个时候需要检查一下SSH是否能够连接成功,输入以下命令<br>
ssh -T git@github.com
打开存放ssh的目录<br>
cd ~/.ssh
创建文件方法<br>
按住shift键盘
vim config,然后编辑,最后:wq退出
键盘输入字母i进入插入编辑模式
如果是输出状态,首先按Esc键退出输入状态,然后按Shift+“;”<br>再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出
touch 文件名 ,可创建文件
步骤
在github上创建一个库
其他人可以git clone这个库
所有人都可以进行修改,然后添加提交推送到远程
再从远程获取他人修改时用git pull以达到本地最新
如果发生冲突,需要手动修改再merge
尽量不要改别人的代码
GitHub
fork
可以任意fork开源库
自己拥有fork后的仓库的读写权限
pull request
推送给官方仓库来贡献自己的代码
概念
Git提交只针对修改,不针对文件!
工作区
1、查看文件
ls
查看当前文件夹下的文件目录
cat<br>
查看文件的内容
2、rm
删除工作区中的文件
1)再git rm,并git commit
就可以删除版本库中的该文件
2)再git checkout -- <file>
就可以用版本库中的文件恢复工作区中的文件
2、git status
显示工作区的状态
modified
被修改过的文件
红色表示修改未add
绿色表示修改已add但未提交
Untracked
一次也未提交过的文件
clean
对工作区无任何修改
deleted
版本库中有,但工作区中删除了的文件
git diff
如果git status说有文件被修改过,可以查看修改内容
3、git checkout -- file
撤销工作区的修改<br>(在上一次git add或git commit之后)
其实是用暂存区或版本库中的文件替换工作区的文件
4、git checkout <branch-name>
切换到一个分支
git checkout -b <branch-name><br>
checkout后加上-b参数,表示创建一个分支并切换到该分支
相当于两条命令
git branch <branch-name>
git checkout <branch-name>
git branch <branch-name>
5、git switch <branch-name>
切换到已有的分支
git switch -c <branch-name>
switch后加上-c参数,表示创建并切换到新的分支
6、git branch
可以查看所有分支和当前分支
git branch <branch-name><br>
加<branch-name>参数,则表示创建一个新分支
git branch -d <branch-name><br>
加-d <branch-name>参数,则表示删除一个分支
7、git merge <branch-name>
合并指定分支到当前分支
当两个分支都对一个地方有更新时,就会发生冲突,<br>此时可以用git status查看冲突文件,然后直接查看其内容,手动修改
git log --graph
可以查看分支合并图
merge后加上--no-f参数表示用创建分支并删除的方式合并
还应为commit添加-m参数
8、git stash
突然遇到急需解决的其他工作时,<br>把当前工作现场储藏起来
git stash list
查看储存的工作空间
git stash apply
恢复工作空间
后加stash@{0}参数,表示选择一个stash list中的stash恢复
git stash drop
恢复后,删除stash的内容
git stash pop
恢复工作空间,同时把stash内容也删了
9、git cherry-pick <commit-id>
复制一个特定的提交到当前分支
修复master上的bug后复制修改到dev
加入
1、git add .
将当前文件夹内的文件全部add入暂存区
git add <file_name>
add一个文件
放回
2、git reset HEAD <file>
将add进暂存区的文件全部放回工作区
暂存区
1、git commit -m " "
-m后面输入的是本次提交的说明
历史记录里找改动记录时显示
2、git log
从最近到最远的提交日志
git log --pretty=oneline --abbrev-commit
减少无用输出信息
本地版本库
1、版本穿梭
git reset --hard HEAD^
回退到上一版本
可以撤销提交到本地版本库的修改
git reset --hard <commit_id>
历史版本之间穿梭
git reflog
查看历史命令
以便确定要回到未来的哪个版本
2、git rm,并git commit
删除版本库中的文件
3、git rebase
把本地未push的分叉提交历史整理成直线
4、git tag
查看所有标签
标签与某个commit版本绑定
标签按字母排序
git tag <name>
在当前分支打一个标签
git tag -a <tagname> -m " " <commit_id>
创建带有说明的标签
git show <tagname>
查看某一标签信息
delete tag <tagname>
git tag -d <tagname><br>git push origin :refs/tags/<tagname>
从本地和远程删除标签
git push origin <tagname>
推送某个标签到远程
git push origin --tags
推送所有标签
关联
1、git remote add orgin <git_address>
关联一个远程库
gitee
git remote add origin git@gitee.com:<server_name>/<repo_name>.git
可能会报错
说明本地库已经关联了一个名叫origin的远程库
git remote rm github
<br>git remote add origin git@github.com:enlyhua/gitTest.git
2、git branch --set-upstream-to=origin/<branch_remote> <branch_local>
指定本地的一个分支与远程库中的一个分支的链接
或git branch --set-upstream-to <branch_local> origin/<branch_remote>
推送
git push <repo_name> <branch_local>
把本地分支的所有内容推送到对应的远程分支
要先再关联库,才能推送
-u参数,使得本地的分支与远程的联系起来,以后推送和拉取都可以简化命令
push有可能失败
当你的小伙伴也有最新提交,并且和你的提交有冲突时
要先pull,然后本地merge,解决冲突,再pull
拉过来
克隆远程库
git clone git@github.com:<server-name>/<repository-name>.git
从远程库克隆一个本地库
拉取分支
git fetch
拉取最新的提交
git pull
把最新的提交从远程库中的远程分支拉取过来并合并
pull=fetch+merge
需要本地有代码,pull只是拉取过来更新你的代码
pull有可能会失败
no tracking information<br>原因是没有指定本地分支和远程分支的链接
通过branch远程关联命令解决
pull成功后,可能在与本地merge时有冲突,需要手动解决,之后就可以push了
这样你的修改与小伙伴的修改都push了
<<<<<<<< HEAD<br> 你写的代码<br>===============<br> 别人写的代码
git diff可以查看具体不同之处,一个一个进入文件手动修改
输入q回车退出
git checkout -b <branch_local> <repository_name>/<branch_remote>
把远程库中的分支创建到本地,变为本地分支
远程版本库<br>
远程库的默认名为origin
概念
github上的一个repository就是一个远程服务器
1、运行git的服务器
一台24小时开机的电脑
2、github网站免费提供git远程仓库
3、ahead of by 1 commit
本地的分支比远程的分支要超前1个commit
git remote
显示与当前本地库关联的远程库的信息
git remote -v
加上-v参数
显示详细信息
git remote rm <repo_name>
删除与当前远程库的关联
0 条评论
下一页