参照自:
git reset三种模式
git reset使用和回滚
几款常用的git图形化工具
菜鸟教程
常用git命令清单
https://www.cnblogs.com/lsgxeva/p/8540485.html
cd desktop
cd cloneGitST
echo "第一行" >> test.txt
git init
git add test.txt /git add --all
git commit -m "first commit"
git remote add origin [email protected]:yorkfu2017/ts.git #添加远程仓库origin
git push -u origin master #向远程仓库推送代码
git pull #拉取代码
git clone [email protected]:yorkfu2017/ts.git #从远程仓库克隆代码
git status #查看状态
git log #获得所有提交的历史记录,并且可以获得对应的哈希值
wq #退出
git config --list /git config -l #查看配置信息 注意git 提交的用户名和密码 就是你在config中设置的用户名和密码。
git config --global user.email “[email protected]”
git config --global user.name “Your Name”
git remote show origin #查看远程仓库的详细信息
git vim命令 , 具体vim命令点击查看
vim :进入或者创建 filename文件。
git diff 我感觉大概了解下好了,真正使用的时候,还是用图形化界面工具比如sourceTree吧
a、查看尚未暂存的文件更新了哪些部分,不加参数直接输入
git diff
此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
也就是修改之后还没有暂存起来的变化内容。
b、查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
git diff --cached
git diff --staged
c、显示工作版本(Working tree)和HEAD的差别
git diff HEAD
d、直接将两个分支上最新的提交做diff
git diff topic master 或 git diff topic..master
e、输出自topic和master分别开发以来,master分支上的changed。
git diff topic...master
f、查看简单的diff结果,可以加上--stat参数
git diff --stat
g、查看当前目录和另外一个分支的差别
git diff test
h、比较上次提交commit和上上次提交
git diff HEAD^ HEAD
i、比较两个历史版本之间的差异
git diff SHA1 SHA2
首先要搞定与远程github的用户验证问题。使用ssh key 的验证方式。如果是sourceTree,就需要在
======== 工具》选项中修改 默认加密方式 为OpenSSH。
本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
使用以下命令在本地生成 SSH Key:
ssh-keygen -t rsa -C "[email protected]"
后面的 [email protected] 改为你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key。 然后在github上创建ssh key ,并且粘贴,然后我们本地仓库就可以根据SSH URL地址去访问github了。
#提交代码到远程仓库,应该是先拉取代码,然后呢别人提交的一些代码可
#能和我的有冲突,修复这些冲突之后,再去提交(借鉴勿怪啊。。)
git pull origin master
git push origin master
git branch #查看分支
git branch -a #查看所有分支,包括远程和本地
git branch name #创建分支
git checkout name #切换分支到name
git checkout -b name #创建一个新的分支并且立即切换到它
git merge name #在分支master上合并分支name
git branch -d name #删除本地分支name
git push origin --delete name #删除远程分支
4.1 我们首先要知道git 的三棵树。
Working Tree 当前的工作区域
Index/Stage 暂存区域,和git stash命令暂存的地方不一样。使用git add xx,就可以将xx添加近Stage里面
Repository 提交的历史,即使用git commit提交后的结果。
4.2 然后要理解git 的一些常用命令的原理。
以下内容来自 https://blog.csdn.net/edric1261234/article/details/82796506
5.1 --soft
仅仅移动当前Head指针,不会改变工作区和暂存区的内容
5.2 --mixed
是reset的默认参数,移动head指针,改变暂存区内容,但不会改变工作区
5.3 --hard
当前head指针、工作区和暂存区内容全部改变 。
git reset --mixed HEAD^^ / git reset --mixed HEAD~2 #向前回滚两个commit
git reset --mixed HEAD #回滚到本地最后一次提交成功的commit。
git reset --mixed commit_id #回滚到对应的commit_id。
回滚就分为以下三种 情况。
a,工作区修改完,还没执行 git add
git checkout test.txt
b,使用git add 提交到暂存区,还未commit之前
git reset --mixed HEAD /git reset --mixed last_commit_id # last_comit_id 替换为最后一次commit的ID号
git check out test.txt
或者直接使用
git reset --hard HEAD /git reset --hard last_commit_id # last_comit_id 替换为最后一次commit的ID号
c,已经git commit,还未git push
git reset --hard origin/master #从远程仓库把代码取回来,然后覆盖本地仓库、本地暂存区和工作区
或者使用
git reset --hard last_commit_id # 覆盖本地仓库、暂存区和工作区
或者使用
git reset --mixed last_commit_id # last_comit_id 替换为最后一次commit的ID号
git check out test.txt
d,已经git push
也就是你的代码已经上传到公共服务器了,大概可以在服务器上回滚吧。
通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。
git tag / git tag -l #查看所有标签
git tag v1.0.1 #创建标签 切换到需要打标签的版本,然后输入 git tag name就可以打上标签
git tag -a v1.0 -m "描述" #创建标签 并且添加描述
git push origin v1.0.1 #标签发布到远程仓库
git push origin --tags #一次性推送全部尚未推送到远程的本地标签
git tag -d v1.0.1 #删除标签
git tag -d v1.0.1 git push origin v1.0.1 # 这两个命令加起来就是删除远程标签
Git中不能真的检出一个标签,因为他们并不能像分支一样来回移动。如果想要工作目录与仓库中特定地标签版本完全一致,可以使用git checkout -b [分支名] [标签名]在特定地标签上创建一个新分支
git checkout v1.0.1 #可以取得该 tag 对应的代码
git checkout master #切回master分支
但是,这时候 git 可能会提示你当前处于一个“detached HEAD" 状态。
因为 tag 相当于是一个快照,是不能更改它的代码的。如果要在 tag
代码的基础上做修改,你需要一个分支:
git checkout -b branch_name v1.0.1
1,GitHub for Desktop
2,Source Tree
SourceTree是老牌的Git GUI管理工具了,也号称是最好用的Git GUI工具。我的体验是确实强大,功能丰富,基本操作和高级操作都设计得非常流畅,适合初学者上手。git flow是一大特色。
3,TortoiseGit
对这只小乌龟估计没有开发人员会不认识,SVN的超广泛使用也使得这个超好用的Svn客户端成了几乎每个开发人员的桌面必备软件。小乌龟只提供Windows版本,提供中文版支持的,对于中国的开发者来说者绝对是福音。
4,visual studio自带的git集成扩展
1,下载msysGit并安装
2,下载TortoiseGit并安装
3,在visual studio扩展工具中 搜索Tgit并且安装。
配置svn相似,下载 visual svn for vistudio, visual studio ,tortoise svn这三个 安装就可以了。