一.简单的命令:
1.列出所有分支
git branch -a
2.创建test分支
git branch test001
git 把本地分支推送到远程
git push --set-upstream origin test001
克隆某个地址到该目录下(默认是master分支)
git clone git@code.xxxx/..../test.git
3.切换到test分支:
git checkout test001
拉取新分支
git checkout -b test002
4.添加add修改:
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) 仅更新当前正 在跟踪的文件。
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件'
git怎么查看哪些文件是在版本控制下的呢
git ls-files
5.添加commit注释
git commit -m "第一次提交代码"
6.提交到服务器
git push origin test001
当push 报错:HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large]
则修改push方式,改为ssh
git remote set-url origin git@git.xxx.xx:jiangtaisheng2020/cmcstaffcomponentkit.git
git获取远程路径
git remote -v
7.拉取服务器代码:
git pull
8.把 test001 分支合并到master分支
git checkout master
git merge test001
9.删除test分支
删除本地分支
git branch -d test001
删除服务器test分支
git push origin --delete test001
10.提交代码(解决冲突版本)
1、git stash (这是将本地代码回滚值至上一次提交的时候,就是没有你新改的代码)
2、git pull(将远程的拉下来)
3、git stash pop(将第一步回滚的代码释放出来,相等于将你修改的代码与下拉的代码合并)
然后解决冲突,你本地的代码将会是最新的代码
11.GIT 回溯/退回版本
第一步: git log 查看之前的commit的id,找到想要还原的版本
第二步: git reset --hard 44bd896bb726be3d3815f1f25d738a9cd402a477 还原到之前的某个版本
第三步: git push -f origin master 强制push到远程
git还原某个特定的文件到之前的版本
场景: 对于某个[Git]控制下的文件进行了修改,但是改的不满意,想退回到改之前的版本。假定该文件为 WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h
解决方法:
第一步: 在命令行中输入 git log WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 得到该文件的commit 历史。
第二步: 复制需要回退版本的hash,在此假设我们回退到 bbf560998082fa27e928effc30926cd2858c445c ,则复制该序列即可
第三步:checkout 对应版本。格式为 git checkout <hash> <filename>, 在此即为命令行中输入 git checkout bbf560998082fa27e928effc30926cd2858c445c WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h
第四步: commit checkout下来的版本。 如: git commit -m "revert to previous version"
12.Git版本回退后再恢复 因版本分支错误,将版本回退到某个版本,但发现期间新建的文件丢失,想撤销本次版本回退,重新回到操作前的状态.
第一步: 通过git reflog命令查看操作日志:
第二步: 查看对应的版本号,就可以恢复到任意版本:
第三步:恢复版本: git reset --hard "af24a0b"
13. 查看日志
git log
14. 查看提交记录
git reflog
15.Git 保存和恢复工作进度(stash)
前提:必须是处于git下的文件,未add到git的文件无法使用。
1.保存当前工作进度,将工作区和暂存区恢复到修改之前。
命令:git stash
命令:git stash save message. 作用同上,message为此次进度保存的说明。
2.显示保存的工作进度列表,编号越小代表保存进度的时间越近。
命令:git stash list
3.恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
命令:git stash pop stash@{num}
4.恢复工作进度到工作区且该工作进度可重复恢复,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
命令:git stash apply stash@{num}
5.删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
命令:git stash drop stash@{num}
6.删除所有保存的工作进度。
命令:git stash clear
7.显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
命令: git stash show :
8.显示第一个存储的改动
命令: git stash show -p
如果想显示其他存存储,
命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
16.Git打标签
1. 列显标签
git tag
2.如果标签过多,可以进行筛选,终端输入:
git tag -l 'V1.0.*'
3.创建轻量标签
git tag v1.0.1 或者 git tag -a v1.0.1 -m 'Test001 V1.0.1'
4.对历史commit打tag
git tag v1.0.1 06c0b98
5.切换标签
git checkout v1.0.1
6.查看标签信息
git show v1.0.1
7.删除本地标签
git tag -d v1.0.1
8.删除远程标签
git tag -d v1.0.1
git push origin :refs/tags/v1.0.1
9.推送指定版本到远程
git push origin v1.0.1
10.一次性推送全部尚未推送到远程的本地标签
git push origin --tags
11.git切换tag并提交代码
tag是只读分支,所以需要重命名为新分支
1. fetch 线上所有的tag到本地
git fetch --tags
2. 切换到你需要修复的tag
git checkout [tag_name]
3. 将tag重命名为可修改的分支
git switch -c <new-branch-name> #可以将此版本作为tag的热修复版本,测试没问题之后可以直接发布
4. 合并代码
将修改的分支合并到其他分支
17、git restore --stage <file>和git restore <file>
1、文件在暂存区且未作修改的情况
使用git restore --staged <file> 把文件从暂存区移动到工作区,即文件不被追踪;
2、文件在暂存区且已经修改的情况
使用git restore --staged <file> 把文件从暂存区移动到工作区,且不会撤销修改的内容;
使用git restore <file> 文件仍在暂存区且会撤销文件修改的内容;
3、文件在本地代码库已经修改的情况
使用git add <file> 把文件重新放到暂存区,且保留文件的修改;
使用git restore <file> 文件仍在本地代码库且会撤销文件的修改;
对于git restore <file>命令,会撤销文件的修改,使文件恢复到暂存区或本地代码库(取决于文件在修改前的状态);
对于git restore --staged <file>命令,把文件从暂存区撤回到工作区,保留文件最后一次修改的内容;
18、关于隐藏文件
1. 显示隐藏文件:defaults write com.apple.Finder AppleShowAllFiles YES;KillAll Finder
2. 不显示隐藏文件:defaults write com.apple.Finder AppleShowAllFiles NO;KillAll Finder
19、git config配置Git 设置名字和邮箱地址
git config --global user.name "你的名字" ;
git config --global user.email "你的邮箱"
20、回撤文件修改
1、在工作区修改,但并未提交到暂存区(即并没有add)
- 对于单个文件的撤销修改而言,使用下面方法。
git checkout -- 文件名
若想撤销工作区中所有文件的修改
git checkout .
2、工作区修改了之后,提交到了暂存区(即add),如何撤销修改?这里分为两种情况来说吧
- 对于该文件来说,在当前分支上,你还没有commit过一次。
使用 git rm --cached 文件名 命令来放弃该文件的暂存
使用命令 : git status 可以看到下面的 内容
此时 Untracked files:
(use "git add <file>..." to include in what will be committed)
BravoTeacher/Classes/Login/View/
表明:文件不被git追踪,并且它是修改的状态,没有提交到暂存区 ,此时,你用git checkout -- file是没有用的。
因 为,前面提到过,git checkout -- file是回到最近的一次commit或者add。但是,当前你还没有一次 commit 过,并且,add也已经撤销了,所以Git找不到该文件在以往记录中的存在。自然没法用git checkout -- file。此时,你可以任意的对此文件进行修改了,想好了之后,再提交到暂存区。
- 如果你已经有了commit的记录,撤销文件
则先:git reset HEAD file让该文件回到工作区的状态。
git reset dd1e013 BravoTeacher/Classes/Login/View/View/CMCLoginModelSwitchView.swift
然后:git chekcout -- file即可
git chheckout -- BravoTeacher/Classes/Login/View/View/CMCLoginModelSwitchView.swift
出自链接:https://blog.csdn.net/qq_40713392/article/details/98449133git
21、 查看文件修改内容
1.未 add 之前
git diff xxx
git diff ProductPurchase/Classes/Notices/Controller/CMCInstructionsInfomationViewController.m
2.查看提交的修改内容
1.git log
获取 commitId ff22df7a18dce7dd56f108e574db0c3af5c5eae3
2. git show commitId
就获取每次提交的代码更改的内容
网友评论