git 基础操作索引

首先上张git的概述图,图片中应该包含了git大部分的简单命令。

1.基础篇

         
git clone https://github.com/PX4/Firmware.git        git clone
git config --list                           查看配置等基础信息
git config --global user.name "new_name"    更改名字,不加global为本地,或者直接修改当前仓库的.git/config文件
git config --global --edit                  修改config配置
git config --global credential.helper store    保存账号密码
git config --global credential.helper cache 保存默认15min
git config credential.helper 'cache --timeout=3600' 1小时后失效

rundll32.exe keymgr.dll,KRShowKeyMgr        win+r后输入,删除账号信息
git push -u origin master

stash
----------------------------------------------------------------------------------------
git stash                            将当前更改保存到缓存
git stash save "test-cmd-stash"      将当前添加说明更改保存到缓存
git stash list                       显示缓存信息
git stash apply                      将上一个缓存提出
git stash apply stash@{2}            将第二个缓存提出

2.查看篇


git log            查看提交log记录
git status         查看当前状态
git branch         查看分支
git tag            查看所有标签
git reflog         查看提交简写哈希码
git gui            ui查看

3.提交篇

提交3步曲

git add -u                 加入已跟踪版本
git commit -m"说明"         提交到本地
git push                   提交到远程服务器

4.跟踪篇

添加文件

git add [path]          加入指定文件到版本跟踪
git add -u              仅监控已经被add的文件(即tracked file)
git add .               监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区
git ls-files            查看跟踪文件列表

取消已跟踪文件

git rm --cached FILENAME              移除跟踪文件
git rm -r --cached FOLDERNAME         移除跟踪文件夹
git reset HEAD                        如果后面什么都不跟的话 就是上一次add 里面的全部撤销了

忽略不跟踪版本文件-gitignore

在当前分支下新建.gitignore文件,在里面添加要忽略的文件和目录,如当前分支目录目录下obj文件夹下的.obj文件在.gitignore

中写入

/out/*.obj

使gitignore中忽略生效需要执行

git rm -r --cached .
git add .
git commit -m "update .gitignore"

1).gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

2)想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,

   对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略

5.回退篇

git checkout 316ffa3         回退到316ffa3版本前6位即可 


git push回退,将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录
git reset --hard             回退上一次版本
git reset --hard $HEAD^      回退上一次版本
git reset --hard $HEAD^^     回退上上一次版本
git reset --hard $HEAD~4     回退上4次版本
git reset --soft  $HEAD      只退回commit内容
git reset --hard 316ffa3     回退到316ffa3版本前6位即可

git如何取消merge

git merge --abort            未合并完成时使用
git reset --hard commit id   合并完成情况下,先用 git reflog 指令显示历史的操作查看commit id

6.分支篇

分支建立:
git branch name_branch                        在当前分支下建立name_branch分支
git push origin name_branch                   将name_branch推向远程origin下
git push --set-upstream origin name_branch    新分支内容push时需要建立流
git checkout -b name_branch                   从当前分支新建分支复制当前分支内容

删除分支:
git branch -D name_branch                     在本地删除一个未merge分支
git branch -d name_branch                     在本地删除一个分支
git push origin --delete name_branch          删除远程分支

重命名分支
git branch -m name_pre name_now               如不是当前分支
git branch -m name_now                        如是当前分支

标签
git tag                                       查看标签
git ls-remote --tags origin                   查看远程tag
git fetch origin tag <tagname>                获取远程分支到本地

分支合并
git merge issueFix                            切到主分支后合并issueFix分支

分支对比
git diff branch1 branch2 --stat                显示出所有有差异的文件列表
git diff branch1 branch2 具体文件路径           显示指定文件的详细差异
git diff branch1 branch2                       显示出所有有差异的文件的详细差异
git diff branch1:file_path branch1:file_path   显示两个分支中同一文件差异
git diff>log.txt branch1:file_path branch1:file_path   显示两个分支中同一文件差异到log.txt

切换服务器,推送所有分支
git clone <upstream-repo-url/repo.git> --mirror
cd <repo>
git remote add <your-remote-name> <your-remote-url/repo.git>
git push <your-remote-name> --mirror

7.远程篇

更改远程地址
git remote -v                          查看远程地址
git remote set-url origin new_url      更换远程地址
git remote add origin url.git          关联到远程库

合并仓库

8.子模块



git submodule init      初始化  初次拉取代码更新i子模块时需要

git submodule update    更新子模块


删除子模块
1)删除并移除跟踪            git rm --cached [path]   
2)编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3)编辑“.git/config”文件,将子模块的相关配置节点删除掉 

9.SSH-Keys添加

        使用 HTTPS url 克隆对初学者来说会比较方便,复制HTTPS url 然后到 git Bash 里面直接用 clone 命令克隆到本地就好了,但是每次 fetch 和 push 代码都需要输入账号和密码,也可以保存到本地。而使用 SSH url 克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是这个项目的拥有者或管理员。否则你是无法添加 SSH key 的,另外 SSH 默认是每次 fetch 和 push 代码都不需要输入账号和密码。

cd ~/.ssh/

ssh-keygen -t rsa -C "your_email@example.com" 

>Generating public/private rsa key pair.

>Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa): /c/Users/xxx/.ssh/id_rsa_gitlab 

>
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/xx/.ssh/id_rsa_gitlab
Your public key has been saved in /c/Users/xx/.ssh/id_rsa_gitlab.pub
The key fingerprint is:
SHA256:XblGclRJ590dA5NB+Ua2sYSooALesuW7uTeEMYMA3aU xxx.xx@xxx.me
The key's randomart image is:
+---[RSA 3072]----+
|o. . ..   .o+++o+|
|. o o.     +..o++|
| . =E.    ..*  o+|
|  . B    . =..=  |
|   . *  S.. o+ + |
|. . o o . ... o  |
| o o . .   .     |
|  . ..o          |
|    == .         |
+----[SHA256]-----+

cat id_rsa_gitlab.pub
>
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDFhqlsSuSuIBAwaIDmbWUFLVnoECmxBgXH+rV+8YjPZ/oEw3++vPgGHnDFFAVzlZOCEGV0SEhyPYflhFhhO4dk1lV+Dy3zd6P04Mu1aGZSiD927Z9Q.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值