廖雪峰Git教程
https://www.liaoxuefeng.com/wiki/896043488029600
如何为开发项目编写规范的README文件(windows),此文详解
https://www.cnblogs.com/wj-1314/p/8547763.html
【记录】Git pull(拉取),push(上传)命令整理(详细)
https://www.cnblogs.com/wbl001/p/11495110.html
# 基本信息设置
1.设置用户名
$ git config --global user.name 'Your name'
2.设置用户名邮箱
$ git config --global user.email 'Your email'
查看当前用户信息以及其他的一些信息
$ git config --list
$ git config --l
3.初始化仓库
# 初始化仓库后会生成一个 .git 的隐藏文件,包含git信息的管理仓库。
$ git init
4.添加文件
# 添加文件到暂存区。
$ git add File_Name
# 将项目的所有文件添加到缓存中:
$ git add .
5.添加文件到仓库
$ git commit -m '提交描述' # 提交到文件库
$ git commit -am '提交描述' # 一步完成提交
# 或者不添加注释 git commit ,但是这样会进入vim(vi)编辑器
# 在这里可以输入更改信息,也可以不输入,然后 按住 shift + : ,输入wq 即可保存信息并退出vim编辑器;
6.查看状态
$ git status
# 小结
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
7.将本地的库链接到远程库
$ git remote add origin https:..
8.上传代码到远程库
# 上传前最好先 Pull 一下,再执行上传代码
$ git pull origin master
$ git push origin master
#即将代码成功提交到远程库!!!
注:如果pull之后出现 “ refusing to merge unrelated histories ”这句,就证明你合并pull两个不同的项目
9.查看 git 的日记信息
小结
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
# 每一次commit都是一个提交点,唯一标识SHA1的ID,ID可使用前4至7个数字表示
$ git log
# 简化 git 日志输出格式
$ git log --pretty=oneline # 每条log输出一条
$ git log --oneline # 只输出前七位 commit id # SHA1计算出来的数字,十六进制
# 显示主分支和自分支git日志 (前面会多个星号)
$ git log --oneline --graph
10.给提交点打标签
$ git tag -a tagV1 d819565b # 提交点SHA1的ID的前7位
# 回车之后会有输入tag内容的界面,然后像linux一样 点击 i 编辑 输入信息后 esc 然后 :wq 保存退出
11.查看分支
# 查看本地添加了哪些远程分支地址
$ git remote
# 查看本地添加了哪些远程分支地址(详细)
$ git remote -v
# 删除本地指定的远程地址
$ git remote remove origin
# 添加远程地址
$ git remote add origin https://xxx.git
# git 本地分支覆盖master(亲测)
比如有一个dev分支进行了多次迭代,但是master没有及时更新,需要使用dev分支来取代master。
切换到dev分支: git checkout dev
删除master分支: git branch -D master
将dev分支复制并创建为master: git checkout -b master
推送到远程: git push -u origin master --force
# 分支:
分支意味着你可以从开发主线(master)上分离开,在不影响主线的同事继续工作
git branch #列出当前开发所有分支(默认会有master)<br>
git branch king #创建一个king的分支(最新提交点)<br>
git branch king 提交点 # 创建一个king的分支(指定提交点)
<br>git branch -d -r <branchname> # 删除远程分支,删除后还需推送到服务器<br>git push origin:<branchname> # 删除后推送至服务器<br><br>
git branch -d king #删除king分支
git checkout -b mybranch # 创建并切换分支
git checkout king #切换至king分支
git checkout master
git merge king #合并分支king和主干master,合并后的提交点属于主干master
# 查看工作区和版本库里面最新版本的区别
$ git diff HEAD -- readme.txt
# 丢弃工作区的修改
git checkout --readme.txt # 回到最近一次 git commit 或 git add 时的状态
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
个人理解:撤回文件在工作区的全部修改。
# 丢弃修改区的修改
git reset HEAD readme.txt
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
再用git status查看一下,现在暂存区是干净的,工作区有修改。
还可以继续丢弃工作区的修改
$ git checkout -- readme.txt
整个世界清净了,working tree clean。
小结
又到了小结时间。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
# TODO
# TODO
本地分支重命名
https://www.cnblogs.com/wbl001/p/11495110.html
# 廖雪峰-版本回退-Start
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
$ git reset --hard Head^
此时用 git log 查看现在版本库的状态,会发现原来的最新版已经消失。
解决办法:只要上面的命令行窗口还没有被关掉,就可以回到未来的某个版本:
$ git reset --hard 1094adb # commit ID 多写几位比较保险(7位)
如果回退到某个版本关掉了电脑,第二天后悔了怎么办。
解决办法:只要找到你想恢复版本的 commit ID 即可。
$ git reflog
# 廖雪峰-版本回退-End
# 删除文件
1.删除文件
$ rm File_Name
2.从Git中删除文件
$ git rm File_Name
3.删除缓存区所有文件
$ git rm -r --cached . # . 点一定要写
4.提交操作
$ git commit -m '提交描述'
# 删除仓库
1.删除本地仓库(两种方法)
# 方法一:手动删除“git本地仓库”根目录下的隐藏文件夹 “.git”
# 方法二:在本地仓库的目录下调用命令行删除根目录下的 .git 文件夹。
$ find . -name ".git" | xargs rm -Rf
# 检验是否成功删除了本地仓库:如果本地仓库目录末尾没有 “(Master)”,说明成功删除了本地仓库。
2.删除远程仓库
在GitHub的对应的库中到setting删除库。
3.删除远程仓库内的文件/文件夹
首先在本地仓库下打开Git Bash Here命令窗口
(1)git pull origin master 拉取远程仓库更新
(2)dir 查看远程仓库的文件夹
(3)git rm -r --cached 文件夹 删除文件夹
(4)git rm -r --cached 文件(文件夹/文件) 删除文件或指定文件夹下的文件
(4)git commit -m " " 提交修改
(5)git push origin master 推送到远程仓库
# 克隆操作
1.克隆到本地
$ git clone 仓库地址
2.克隆远程指定分支下代码(-b 分支名称)
git clone -b v1.0 http://xxx.git
# git 中的三类文件(主要讲解忽略文件)
被追踪的(tracked):已经加入文档库
不被追踪的(untracked):没有加入文档库
忽略的(ignored):忽略那些不需要管理的文件夹或文件
新建忽略文件,目录下建立一个 .gitignore 文件(可以有多个,影像范围当前文件及子文件)
$ touch .g # 其实就是Linux指令
.gitignore文件忽略内容demo
# Maven #
target/
# IDEA #
.idea/
*.iml
# Eclipse #
.settings/
.classpath
.project
注意:新建的一个忽略文件,为什么没有生效
答:可能是因为你的缓存区已经有忽略的文件了,所以需要先清空缓存区里的文件,重新add和commit操作
删除缓存区所有文件命令
$ git rm -r --cached . #主要这个点一定要写
重新add到缓存区
$ git add .
# 黑马Git教程_Start
https://www.bilibili.com/video/BV1Mk4y1y7jR?p=1
1.使用前配置
git config --global user.name 'YourName'
git config --global user.email 'YourEmail'
git config --list # 查看git配置信息
2.提交步骤
git init # 初始化git仓库
git status # 查看文件状态
git add File_Name # 追踪文件
git commit -m '提交描述' # 向仓库中提交代码
git log # 查看提交记录
3.恢复记录
# 将 git 仓库中指定的更新记录回复出来,并且覆盖工作目录中的文件
其实应该是往回撤销一步
(commit 后更改了文件) ----撤销----(commit 后的状态)
git checkout File_Name
# 将文件从暂存区中删除
git rm --cached File_Name
# 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录
git rest --hard commitID
4.分支命令
git branch # 查看分支
git branch Branch_Name # 创建分支 # 基于所在分支创建分支
git checkout Branch_Name # 切换分支
git merge 来源分支 # 合并分支
git branch -d 分支名称 # 删除分支(分支被合并后才允许删除) # -D 强制删除
5.暂时保存更改
git stash # 存储临时改动
git stash pop # 恢复改动
6.多人协作开发流程
(1)push # A 从本地仓库push到远程仓库
(2)clone # B 从远程仓库clone到本地仓库
(3)push # B从本地仓库push到远程仓库
(4)pull # A从远程仓库pull到本地仓库
(1)(3)push
git init # 初始化一个本地仓库
# 然后可以添加内容了
git add . # 添加到暂存区
git commit -m '提交描述' # 提交到 git 仓库
# 在 GitHub 中创建一个远程仓库 会生成一个 HTTPS 和 SSH 地址
# git push 远程仓库地址 分支名称 # 过于繁琐
# 因此一般给远程仓库地址取一个别名
git remote add origin HTTPS # 一般将远程仓库取名为 origin # 命名一次后下次直接可以写 origin 了
git push origin master
# 更加简化步骤
# 如果提交到远程仓库添加 -u 参数,就会记住 远程仓库 和 分支名称 的对应关系
git push -u origin master
# 在此之后就直接用下列命令了
git push
(2)clone
git clone 仓库地址 # 克隆远程仓库到本地
(4)pull
git pull 远程仓库地址 分支名称 # 拉取远程仓库中的最新版
git pull origin master
# 黑马Git教程_End
网友评论