Git
将本地仓库与(GitHub等)远程remote仓库同步
git remote update origin --prune
GitHub有新分支,要把这个新分支拉取到本地
展示本地仓库和远程仓库的关系
git remote show origin
展示所有分支,包括本地分支和远程分支
git branch -a
展示所有远程分支
git branch -r
展示本地分支和远程分支的映射关系
git branch -vv
-
git diff main develop
main和develop是分支名称,也可以加上origin等对远程分支进行比较
查看本地Git的信息
git config --list
本地git config设置的信息、GitHub等绑定的信息、ssh生成秘钥用的email
简而言之,本地git config配置的name和email要和GitHub一致,自己的GitHub才能有提交记录显示(private repo则不会有显示)
将本地仓库的提交推送到绑定的远程仓库
git push <远程主机名> <本地分支名>:<远程分支名>
若当前本地分支已经与远程分支相绑定,则可以直接用
git push
- 也可以用这个命令直接在远程创建分支
(别用这个)只拉取remote远程仓库(GitHub等)的某个分支
git clone -b tipc-dev https://github.com/nano8259/inter-board-ns3.git
删除(GitHub等的)远程分支
git push remote_name --delete [branchname]
remote_name是远程的名称,大多数情况下是origin
删除本地已合并的分支或没有改动的分支
git branch -d [branchname]
强行删除本地分支
git branch -D [branchname]
修改本地分支的名字:
git branch –m old_branch new_branch
绑定本地分支与远程分支:
git branch --set-upstream-to=origin/remote_branch_name local_branch_name
撤销本地分支与远程分支的绑定关系:
git branch --unset-upstream
新建本地分支并与远程分支相关联
git checkout -b local_branch_name origin/remote_branch_name
现有分支与远程分支关联
git branch --set-upstream-to=origin/remote_branch_name local_branch_name
-
首先 git branch -m 本地旧分支名 本地新分支名(改对应的本地分支的名字)
其次 git push –delete origin 远程旧分支名(将远程的旧分支删掉)
git push origin 本地新分支名
绑定本地分支与远程分支:
git branch --set-upstream-to=origin/remote_branch_name local_branch_name
展示push和pull的对象等与remote的关联信息
git remote show origin
同步fork的上游仓库代码更新:git pull upstream
git pull upstream main/dev
-
-
git log
git log --pretty=oneline
git log --oneline
三个命令依次精简,记住要回退到的版本的hash值
本地版本回退
git reset --hard [hashValue]
把更新推送到GitHub等远程服务器
git push -f -u origin main
或git push -f
-
-
分为两种情况:没有远程仓库 和 已经有了远程仓库,需要提交到新的仓库
统计当前版本与某个hash指定版本的差异(修改过的文件列表)
git diff --name-only [hash_value] (这里是节点 或者HEAD~次数)
通过管道将输出重定向到
diff.txt
git diff --name-only [hash_value] (这里是节点 或者HEAD~次数) > diff.txt
修改之前commit的内容:提交信息和代码都可以修改
git 更改某个提交内容和将当前改动追加到某次commit上
git rebase变基
cherry-pick: 从一个分支cherry-pick若干个commit到其他分支:
git cherry-pick commit_id
git cherry-pick --abort
终止cherry-pick操作-
sudo git checkout . && sudo git clean -df
终止merge操作:
git merge --abort
Git flow
上面链接中展示的git flow示意图如下:
裸版本库
--bare
,作为共享库使用--bare
与--mirror
git clone 加上 –bare是拉取一个裸版本库,裸版本库和正常git clone拉取的正常库的区别是:
裸库只具有版本控制的作用,本身不能进行工作区的操作,即正常的 add/commit等命令都是不能执行的.
裸库可以作为一个本地仓库,供给正常库使用,即正常库可以设置remote url为裸库,之后push就是向裸库提交(相当于github/gitlab这样的中央仓库的作用)
裸库一般只用于分享仓库,毕竟没人会在自己本地搞一个库让别人连,gitlab/github/云效不香吗?
即
–mirror
这个理解的不太深刻,从百度/google及官网的说明来看,就是将本地的所有分支都推送到远端(强制),我的简单理解就是将本地的所有分支直接覆盖远端.
与git push相比,不加mirror就只是推送某一个分支.
tmux命令
启动tmux同时新建一个会话
tmux
(比上面多一个对会话的命名)
tmux new -s <name>
退出tmux
exit
orCtrl+D
显示当前所有的tmux
tmux ls
重接会话,重新进入某个会话窗口
tmux attach -t 0
tmux attach -t <name>
离开当前的会话:
Ctrl+b
andD
Screen
使用screen恢复会话时出现There is no screen to be resumed matching错误解决办法
创建一个新的会话
screen
进入上次退出的会话
screent -r
查看当前存在的会话
screent -ls
暂时退出当前会话
Ctrl+a d
退出当前会话
“exit”
Vim
i
进入insert模式esc
退出:wq
退出编辑
Redis
配置过程在本地路径的这里
运行docker中的redis(要先在docker中启动container)
在命令行输入
docker exec -it redis redis-cli
清除docker缓存
flushall
VSCode使用
Terminal
查看当前目录下的文件个数
ls -lR|grep "^-"|wc -l
查看正在运行的进程 用关键词查询
ps -rf | grep <name>
查看所有相关进程 用关键词查询
ps -ef | grep <name>
杀死带有
hxnan
和ibc
的进程:使用管道kill某条命令对应的进程ps -ef | grep ibc | grep hxnan | awk '{print $2}' | xargs kill -9
根据进程的关键字杀死进程
pkill -9 tipc
-
cp -r /source-path /destination-path
修改Linux中gcc和g++的版本:见《ns-3学习.md》
CLion
GNU nano
Ctrl+S
保存你的工作
Ctrl+X
退出
CMake
cmake [options] -S
-B 如
cmake -S . -B build
gcc→make→makefile→cmake→cmakelist
GDB
GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具
参考本博客的另一篇文章《GDB_skills》
- 本文链接:https://wan-nan.github.io/2023/04/01/%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E8%AE%B0%E5%BD%95/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。