git使用

git config --global user.name "John Doe" git config --global user.email johndoe@example.com
$ git config --list
首先要在码云上新建一个仓库

1,打开git bash命令行
2,用cd找到要作为上传文件夹的路径,进入,例如cd D:/360安全浏览器下载/上传码云文件
3,git init初始化,会在本地创建一个.git文件夹
4,git remote add origin https://gitee.com/zhanghaoxuan1/software.git,添加远程仓库
5,git clone git@gitee.com:/zhanghaoxuan1/software.git,将码云上的仓库克隆到本地文件夹
或者可以将远程仓库的pull下来git pull origin master

6,进入到要上传文件的文件夹中,同时把要上传到码云上的文件添加到这个文件夹中去,执行git add .命令,把文件保存到缓冲区中
7,然后使用git commit -m ‘新添加的文件内容描述’,添加文件描述
8,git push origin master,将本地仓库推送到远程仓库

git和远程仓库连接,打开本地项目的目录,打开bash.exe,执行下面命令,可以连接远程,并将远程的拉下来,同时将本地的强制推送到远程
git remote add origin git@github.com:YotrolZ/helloTest.git
git pull origin master --allow-unrelated-histories
git push -u origin master -f

首先要在码云上新建一个仓库

1,打开git bash命令行
2,用cd找到要作为上传文件夹的路径,进入,例如cd D:/360安全浏览器下载/上传码云文件
3,git init初始化,会在本地创建一个.git文件夹
4,git remote add origin https://gitee.com/zhanghaoxuan1/software.git,添加远程仓库
5,git clone git@gitee.com:/zhanghaoxuan1/software.git,将码云上的仓库克隆到本地文件夹
或者可以将远程仓库的pull下来git pull origin master

6,进入到要上传文件的文件夹中,同时把要上传到码云上的文件添加到这个文件夹中去,执行git add .命令,把文件保存到缓冲区中
7,然后使用git commit -m ‘新添加的文件内容描述’,添加文件描述
8,命令git push -u origin master第一次推送master分支的所有内容;
之后可以使用git push origin master,将本地仓库最新修改推送到远程仓库

使用git常见的一些错误
1,如果使用git status,出现了modified new commits,是因为那个目录下有新的commit,解决方法:
使用git diff,出现
-Subproject commit 9ea1cebe3dc529ba3861d87c818f045362c40484
+Subproject commit 04ab7af68536ac2c80fd6c08a6fd3620d3409891
然后cd到那个目录
Git reset --hard 9ea1cebe3dc529ba3861d87c818f045362c40484
然后看git status 就干净了

2,如果使用目录是红的,说明你可能把文件管理器中的文件删除了,那么工作区和版本库就不一致了,可以使用git status,来查看哪些文件被删除了
此时有 两个选择,
第一个从版本库中删除该文件,git rm 文件名,并且git commit -m "remove 文件名"
第二种是可能删错了,因为版本库中还存在,所以可以用版本库中的代替工作区中的,git checkout -- 文件名

3,如果Git此时已经commit了,push之后发现push失败了,因为有超过了100m的文件,所以此刻要先查看最近的提交git log,然后依次撤销commit,git commit commit_id,然后删掉本地超过100m的文件,重新提交

Git 版本回退:
命令:
git log,查看提交历史,可以确定回退到那个版本
git reflog 查看命令历史,来确定回退到未来的那个版本
git reset --hard HEAD^ 回退到前一个版本
git reset --hard commit_id,回退到commit_id的历史版本

git 分为工作区和版本库
工作区就是你本地的目录,版本库又分为暂存区和各个分支
版本库就是你执行git add .要去的地方,把文件添加到了版本库的暂存区中,执行git commit -m '',就把文件从暂存区移到master分支了,此时暂存区为空

撤销修改
1,当你改乱了工作区的某个文件的内容,或想回到暂存区的内容时,想直接丢弃工作区的修改时,用命令git checkout -- file
2,当你不但改乱了工作区的某个文件的内容,还添加到暂存区时,想丢弃修改,git reset HEAD file,此时回到1了,然后按1操作
3,已经提交了不合适的修改到版本库时,想要撤销本次提交,可以用版本回退,git reset --hard commit_id
推送到远程库,就没办法了

git创建分支并切换分支,仔细讲解:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424
git checkout -b dev,这个命令标识创建dev分支,并切换到dev分支
-b 就相当于创建并切换
相当于:git branch dev和git checkout dev
用git branch 可以查看当前分支
然后用dev分支操作,提交到版本库中
然后切回master分支,git checkout master,发现刚刚dev分支修改的没变,所以合并dev分支,就是把master指向dev的那个节点,git merge dev
然后就可以删除dev分支了,git branch -d dev

查看分支:git branch
查看全部分支:git branch -a,红色的是远程的分支
创建分支:git branch name
切换分支:git checkout name或git switch -c name
创建+切换分支:git checkout -b name 或 git switch -c name
合并某分支到当前分支:git merge name
删除本地分支:git branch -d name
删除远程分支:git branch -r -d origin/branch-name , git push origin :branch-name

如果git在本地有一个分支,在远程没有,可以git push --set-upstream origin branch_name这个命令可以在将本地的修改push到远程的branch_name的分支,同时在远程创建一个branch_name分支,以后在push都会自动跟踪这个分支了
如果git在远程有一个分支,本地没有,可以git checkout --track origin/branch_name,这个命令可以自动在本地新建一个并进行跟踪

解决冲突:https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344
当git无法自动合并分支时,需要先解决冲突,解决完冲突之后,在提交,合并完成
解决冲突就是把git合并失败的文件手动编辑为我们希望 的内容,在提交
用git log --graph可以查看分支合并图
git log --graph --pretty=oneline --abbrev-commit,简化之后的分支合并图

分支管理策略:
通常合并分支,可能git会用fast forward模式,但这种模式,删除分支后,会丢掉分支信息
如果要强制禁用fast forward 模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
就是用 --no-ff方式的git merge
git switch -c dev
git add readme.md
git commit -m 'add merge'
git switch master
git merge --no-ff -m 'merge with no-ff' dev,因为本次合并要创建一个新的commit,所以要加上-m参数,把描述写进去
git log --graph,可以查看分支合并图

在实际开发中,master非常稳定,用来发布新版本
在dev分支上干活,我的小伙伴每个人都在dev分支上干活,都有自己的分支,时不时的网dev分支上合并就可以了,要发布正式版本的时候,把dev分支合并到master上

git远程的修改了,本地的也修改了同一个文件,会有冲突,如何解决了?
首先将本地的git stash存到暂存区
然后git pull origin master 将远程的拉下来
最后git stash pop,将暂存区的放出来
执行git status,发现会有冲突文件,可以手动把冲突的文件进行修改,合并
执行git add 和git commit 和git push origin master,到远程
如果不想提交到远程,可以git-resolve-conflict 可以这样,在pycham中的项目中点击git,会有resolve conflict这个,可以进行合并
git push <远程主机名> <本地分支名>:<远程分支名>

git撤销本次commit:如果出现more,这是因为cmd的默认换行符是,所以可以^或者使用~,或者"HEAD ^"
1,git reset --soft HEAD^ 撤销本次commit ,HEAD~2是撤销两次commit,不撤销add工作空间代码不删,默认的
2,git reset --mixed HEAD^ 撤销本次commit和add,工作空间代码不删
3,git reset --hard HEAD^ 撤销本次commit和add,删除工作空间代码,恢复上一次commit状态
4,commit注释写错,git commit --amend
5,撤销本次add , git restore --staged 文件
升级pip
python -m pip install -U --force-reinstall pip

git add -i 进入交互模式
git add -u 文件,要上传更新,删除的文件

stash暂存,如果你想要在dev分支开发,但是确在master开发了,那么可以把master上的代码stash起来,然后切换到dev分支进行应用
git stash list git stash apply 不会从栈里面删除
git stash pop 会从栈里面删除
git stash apply stash@{2}
git stash drop stash@{0}
git stash apply --index 不会让add过的文件重新回到未被暂存的状态
git stash apply --keep-index 可以只暂存我们没有add到暂存区的内容,如果不加这个,会把没有commit的内容全部stash

git clean -df 删除当前目录下没有add的文件

git reset HEAD // 还原所有修改
git reset HEAD filename // 还原某个文件

git rm filename // 删除文件,并添加到缓存中
git rm --cached filename // 删除缓存中的文件,但是保留工作区中的文件

git fetch 拉取服务器的最新修改
git push origin 本地分支:远程分支
git fetch origin 远程:本地分支
git pull origin git Test --set-upstream 绑定本地和远程的分支
git stash save ‘’
git stash apply stash{0}
git stash pop

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容