551 lines
52 KiB
HTML
551 lines
52 KiB
HTML
<!DOCTYPE HTML>
|
||
<html lang="en" class="coal" dir="ltr">
|
||
<head>
|
||
<!-- Book generated using mdBook -->
|
||
<meta charset="UTF-8">
|
||
<title>git guide - Andrew's Blog</title>
|
||
|
||
|
||
<!-- Custom HTML head -->
|
||
|
||
<meta name="description" content="Andrew Ryan's Blog">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta name="theme-color" content="#ffffff">
|
||
|
||
<link rel="icon" href="../../favicon.svg">
|
||
<link rel="shortcut icon" href="../../favicon.png">
|
||
<link rel="stylesheet" href="../../css/variables.css">
|
||
<link rel="stylesheet" href="../../css/general.css">
|
||
<link rel="stylesheet" href="../../css/chrome.css">
|
||
|
||
<!-- Fonts -->
|
||
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
|
||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||
|
||
<!-- Highlight.js Stylesheets -->
|
||
<link rel="stylesheet" href="../../highlight.css">
|
||
<link rel="stylesheet" href="../../tomorrow-night.css">
|
||
<link rel="stylesheet" href="../../ayu-highlight.css">
|
||
|
||
<!-- Custom theme stylesheets -->
|
||
<link rel="stylesheet" href="../../src/style/custom.css">
|
||
|
||
<!-- MathJax -->
|
||
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||
</head>
|
||
<body class="sidebar-visible no-js">
|
||
<div id="body-container">
|
||
<!-- Provide site root to javascript -->
|
||
<script>
|
||
var path_to_root = "../../";
|
||
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "coal" : "coal";
|
||
</script>
|
||
|
||
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
||
<script>
|
||
try {
|
||
var theme = localStorage.getItem('mdbook-theme');
|
||
var sidebar = localStorage.getItem('mdbook-sidebar');
|
||
|
||
if (theme.startsWith('"') && theme.endsWith('"')) {
|
||
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
||
}
|
||
|
||
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
||
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
||
}
|
||
} catch (e) { }
|
||
</script>
|
||
|
||
<!-- Set the theme before any content is loaded, prevents flash -->
|
||
<script>
|
||
var theme;
|
||
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
||
if (theme === null || theme === undefined) { theme = default_theme; }
|
||
var html = document.querySelector('html');
|
||
html.classList.remove('coal')
|
||
html.classList.add(theme);
|
||
var body = document.querySelector('body');
|
||
body.classList.remove('no-js')
|
||
body.classList.add('js');
|
||
</script>
|
||
|
||
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
|
||
|
||
<!-- Hide / unhide sidebar before it is displayed -->
|
||
<script>
|
||
var body = document.querySelector('body');
|
||
var sidebar = null;
|
||
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
|
||
if (document.body.clientWidth >= 1080) {
|
||
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
||
sidebar = sidebar || 'visible';
|
||
} else {
|
||
sidebar = 'hidden';
|
||
}
|
||
sidebar_toggle.checked = sidebar === 'visible';
|
||
body.classList.remove('sidebar-visible');
|
||
body.classList.add("sidebar-" + sidebar);
|
||
</script>
|
||
|
||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||
<div class="sidebar-scrollbox">
|
||
<ol class="chapter"><li class="chapter-item affix "><a href="../../index.html">Andrew's Blog</a></li><li class="chapter-item expanded "><a href="../../posts/linux/linux.html"><strong aria-hidden="true">1.</strong> linux</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/linux/install_linux.html"><strong aria-hidden="true">1.1.</strong> install linux</a></li><li class="chapter-item "><a href="../../posts/linux/bash_profile.html"><strong aria-hidden="true">1.2.</strong> bash profile</a></li><li class="chapter-item "><a href="../../posts/linux/command_list.html"><strong aria-hidden="true">1.3.</strong> command list</a></li><li class="chapter-item expanded "><a href="../../posts/linux/git_guide.html" class="active"><strong aria-hidden="true">1.4.</strong> git guide</a></li><li class="chapter-item "><a href="../../posts/linux/tar.html"><strong aria-hidden="true">1.5.</strong> tar</a></li><li class="chapter-item "><a href="../../posts/linux/run_x86_elf_in_x64_setup.html"><strong aria-hidden="true">1.6.</strong> run x86 elf in x64 setup</a></li></ol></li><li class="chapter-item "><a href="../../posts/mac/mac.html"><strong aria-hidden="true">2.</strong> mac</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/mac/macos_profiles.html"><strong aria-hidden="true">2.1.</strong> macos profiles</a></li></ol></li><li class="chapter-item "><a href="../../posts/swift/swift.html"><strong aria-hidden="true">3.</strong> swift</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/swift/learn_swift.html"><strong aria-hidden="true">3.1.</strong> learn swift basics</a></li><li class="chapter-item "><a href="../../posts/swift/swift_extensions.html"><strong aria-hidden="true">3.2.</strong> Swift extensions</a></li><li class="chapter-item "><a href="../../posts/swift/swiftui_extension.html"><strong aria-hidden="true">3.3.</strong> SwiftUI extensions</a></li><li class="chapter-item "><a href="../../posts/swift/install_swift.html"><strong aria-hidden="true">3.4.</strong> install swift</a></li><li class="chapter-item "><a href="../../posts/swift/task_planner.html"><strong aria-hidden="true">3.5.</strong> implment task panner app with SwiftUI</a></li><li class="chapter-item "><a href="../../posts/swift/swift_cheat_sheet.html"><strong aria-hidden="true">3.6.</strong> Swift Cheat Sheet</a></li><li class="chapter-item "><a href="../../posts/swift/yinci_url.html"><strong aria-hidden="true">3.7.</strong> Personal privacy protocol</a></li><li class="chapter-item "><a href="../../posts/swift/swift_regular_exressions.html"><strong aria-hidden="true">3.8.</strong> Swift regular exressions</a></li><li class="chapter-item "><a href="../../posts/ios/how_to_create_beautiful_ios_charts_in_swift.html"><strong aria-hidden="true">3.9.</strong> How to Create Beautiful iOS Charts in鑱絊wift</a></li><li class="chapter-item "><a href="../../posts/swift/swiftui_source_code.html"><strong aria-hidden="true">3.10.</strong> SwiftUI source code</a></li><li class="chapter-item "><a href="../../posts/swift/use_swift_fetch_iciba_api.html"><strong aria-hidden="true">3.11.</strong> use swift fetch iciba API</a></li></ol></li><li class="chapter-item "><a href="../../posts/ios/ios.html"><strong aria-hidden="true">4.</strong> ios</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/ios/cocaposd_setup_and_install_for_ios_project.html"><strong aria-hidden="true">4.1.</strong> cocaposd setup and install for ios project</a></li><li class="chapter-item "><a href="../../posts/ios/swiftui_show_gif_image.html"><strong aria-hidden="true">4.2.</strong> SwiftUI show gif image</a></li><li class="chapter-item "><a href="../../posts/ios/implement_task_planner_app.html"><strong aria-hidden="true">4.3.</strong> implement Task planner App</a></li></ol></li><li class="chapter-item "><a href="../../posts/objective_c/objective_c.html"><strong aria-hidden="true">5.</strong> objective_c</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/objective_c/objective_c_cheat_sheet.html"><strong aria-hidden="true">5.1.</strong> Objective-C Cheat Sheet</a></li><li class="chapter-item "><a href="../../posts/objective_c/objective_c_for_absolute_beginners_read_note.html"><strong aria-hidden="true">5.2.</strong> Objective-C Note</a></li></ol></li><li class="chapter-item "><a href="../../posts/dart/dart.html"><strong aria-hidden="true">6.</strong> dart</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/dart/flutter.html"><strong aria-hidden="true">6.1.</strong> Flutter Cheat Sheet</a></li><li class="chapter-item "><a href="../../posts/dart/dart_cheat_sheet.html"><strong aria-hidden="true">6.2.</strong> Dart Cheat Sheet</a></li><li class="chapter-item "><a href="../../posts/flutter/flutter_dev_test.html"><strong aria-hidden="true">6.3.</strong> Flutter dev test</a></li></ol></li><li class="chapter-item "><a href="../../posts/rust/rust.html"><strong aria-hidden="true">7.</strong> rust</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/rust/offline_use_rust.html"><strong aria-hidden="true">7.1.</strong> Offline use rust</a></li><li class="chapter-item "><a href="../../posts/rust/rust_grammer.html"><strong aria-hidden="true">7.2.</strong> rust grammar</a></li><li class="chapter-item "><a href="../../posts/rust/pase_string_and_decimal_conversion.html"><strong aria-hidden="true">7.3.</strong> pase string and decimal conversion</a></li><li class="chapter-item "><a href="../../posts/rust/parse_types.html"><strong aria-hidden="true">7.4.</strong> rust types</a></li><li class="chapter-item "><a href="../../posts/rust/rust_life_cycle.html"><strong aria-hidden="true">7.5.</strong> Rust life cycle</a></li><li class="chapter-item "><a href="../../posts/rust/rust_generic.html"><strong aria-hidden="true">7.6.</strong> rust generics</a></li><li class="chapter-item "><a href="../../posts/rust/rust_implment_matrix.html"><strong aria-hidden="true">7.7.</strong> Rust implement matrix</a></li><li class="chapter-item "><a href="../../posts/rust/rust_sort.html"><strong aria-hidden="true">7.8.</strong> Rust implement sort algorithms</a></li><li class="chapter-item "><a href="../../posts/rust/implement_aes_encryption.html"><strong aria-hidden="true">7.9.</strong> Rust implement AEC encryption and decryption</a></li><li class="chapter-item "><a href="../../posts/rust/implement_trie_data_structure.html"><strong aria-hidden="true">7.10.</strong> implement trie data structure</a></li><li class="chapter-item "><a href="../../posts/rust/rust_implement_tree.html"><strong aria-hidden="true">7.11.</strong> implement tree data_structure</a></li><li class="chapter-item "><a href="../../posts/rust/list_dir.html"><strong aria-hidden="true">7.12.</strong> list dir</a></li><li class="chapter-item "><a href="../../posts/rust/fast_way_to_implment_object_trait.html"><strong aria-hidden="true">7.13.</strong> fast way to implment object trait</a></li><li class="chapter-item "><a href="../../posts/rust/compress_rust_binary_size.html"><strong aria-hidden="true">7.14.</strong> compress rust binary size</a></li><li class="chapter-item "><a href="../../posts/rust/implment_file_upload_backend.html"><strong aria-hidden="true">7.15.</strong> impliment file upload</a></li><li class="chapter-item "><a href="../../posts/rust/this_is_add_post_cli_implementation_in_rust.html"><strong aria-hidden="true">7.16.</strong> this is add_post cli implementation in rust</a></li><li class="chapter-item "><a href="../../posts/rust/use_rust_implment_a_copyclipbord_cli.html"><strong aria-hidden="true">7.17.</strong> Use rust implment a copyclipbord CLI</a></li><li class="chapter-item "><a href="../../posts/rust/sqlite_database_add_delete_update_show_in_rust.html"><strong aria-hidden="true">7.18.</strong> sqlite database add delete update show in rust</a></li><li class="chapter-item "><a href="../../posts/rust/implementing_tokio_joinhandle_for_wasm.html"><strong aria-hidden="true">7.19.</strong> Implementing tokio JoinHandle for wasm</a></li><li class="chapter-item "><a href="../../posts/rust/rust_implement_a_crate_for_encode_and_decode_brainfuck_and_ook.html"><strong aria-hidden="true">7.20.</strong> rust implement a crate for encode and decode brainfuck and ook</a></li><li class="chapter-item "><a href="../../posts/rust/slint_builtin_elements.html"><strong aria-hidden="true">7.21.</strong> Slint Builtin Elements</a></li><li class="chapter-item "><a href="../../posts/rust/corporate_network_install_rust_on_windows.html"><strong aria-hidden="true">7.22.</strong> Corporate network install Rust on windows</a></li><li class="chapter-item "><a href="../../posts/rust/rust_binary_file_how_to_judge_static_link_or_dynamic_link_in_macos.html"><strong aria-hidden="true">7.23.</strong> rust binary file how to judge static link or dynamic link in Macos</a></li><li class="chapter-item "><a href="../../posts/rust/rust_binary_include_dir_and_get_contents.html"><strong aria-hidden="true">7.24.</strong> rust binary include dir and get contents</a></li><li class="chapter-item "><a href="../../posts/rust/rust_logger_non-block.html"><strong aria-hidden="true">7.25.</strong> rust logger non-block</a></li><li class="chapter-item "><a href="../../posts/rust/rust_connect_sql_server_database.html"><strong aria-hidden="true">7.26.</strong> rust connect sql server database</a></li><li class="chapter-item "><a href="../../posts/rust/rust_websocket_implment.html"><strong aria-hidden="true">7.27.</strong> rust websocket implment</a></li></ol></li><li class="chapter-item "><a href="../../posts/java/java.html"><strong aria-hidden="true">8.</strong> java</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/java/java_grammar.html"><strong aria-hidden="true">8.1.</strong> java grammar and codewar</a></li><li class="chapter-item "><a href="../../posts/java/run_jar.html"><strong aria-hidden="true">8.2.</strong> java run .jar</a></li><li class="chapter-item "><a href="../../posts/java/java_pomxml_add_defaultgoal_to_build.html"><strong aria-hidden="true">8.3.</strong> Java pomxml add defaultGoal to build</a></li><li class="chapter-item "><a href="../../posts/java/java_set_mvn_mirror.html"><strong aria-hidden="true">8.4.</strong> Java set mvn mirror</a></li></ol></li><li class="chapter-item "><a href="../../posts/python/python.html"><strong aria-hidden="true">9.</strong> python</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/python/convert_pesn.html"><strong aria-hidden="true">9.1.</strong> convert pesn</a></li><li class="chapter-item "><a href="../../posts/python/find_remove_dir.html"><strong aria-hidden="true">9.2.</strong> find and remove dir</a></li><li class="chapter-item "><a href="../../posts/python/timing_message.html"><strong aria-hidden="true">9.3.</strong> wechat send message</a></li><li class="chapter-item "><a href="../../posts/python/use_python_openpyxl_package_read_and_edit_excel_files.html"><strong aria-hidden="true">9.4.</strong> Use python openpyxl package read and edit excel files</a></li></ol></li><li class="chapter-item "><a href="../../posts/go/go.html"><strong aria-hidden="true">10.</strong> go</a></li><li class="chapter-item "><a href="../../posts/js/js.html"><strong aria-hidden="true">11.</strong> js</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/js/js_tutorial.html"><strong aria-hidden="true">11.1.</strong> js tutorial</a></li><li class="chapter-item "><a href="../../posts/js/js_tutorial_map.html"><strong aria-hidden="true">11.2.</strong> ja map</a></li><li class="chapter-item "><a href="../../posts/js/js_tutorial_math.html"><strong aria-hidden="true">11.3.</strong> js math</a></li><li class="chapter-item "><a href="../../posts/js/js_tutorial_object.html"><strong aria-hidden="true">11.4.</strong> js object</a></li><li class="chapter-item "><a href="../../posts/js/js_tutorial_set.html"><strong aria-hidden="true">11.5.</strong> js set</a></li><li class="chapter-item "><a href="../../posts/js/single_thread_and_asynchronous.html"><strong aria-hidden="true">11.6.</strong> single thread and asynchronous</a></li><li class="chapter-item "><a href="../../posts/js/this.html"><strong aria-hidden="true">11.7.</strong> js this</a></li><li class="chapter-item "><a href="../../posts/js/js_implment_aes.html"><strong aria-hidden="true">11.8.</strong> js implment aes</a></li><li class="chapter-item "><a href="../../posts/js/getting_started_with_ajax.html"><strong aria-hidden="true">11.9.</strong> getting started with ajax</a></li><li class="chapter-item "><a href="../../posts/js/BinarySearchTree.html"><strong aria-hidden="true">11.10.</strong> binary search tree</a></li><li class="chapter-item "><a href="../../posts/js/goole_zx.html"><strong aria-hidden="true">11.11.</strong> goole zx</a></li><li class="chapter-item "><a href="../../posts/js/es6.html"><strong aria-hidden="true">11.12.</strong> es6</a></li></ol></li><li class="chapter-item "><a href="../../posts/ruby/ruby.html"><strong aria-hidden="true">12.</strong> ruby</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/ruby/rails_setup_env.html"><strong aria-hidden="true">12.1.</strong> ruby on rails setup environment</a></li><li class="chapter-item "><a href="../../posts/ruby/learn_ruby.html"><strong aria-hidden="true">12.2.</strong> learn ruby</a></li><li class="chapter-item "><a href="../../posts/ruby/ruby_note.html"><strong aria-hidden="true">12.3.</strong> Ruby Note</a></li><li class="chapter-item "><a href="../../posts/ruby/setup_ruby_for_ctf.html"><strong aria-hidden="true">12.4.</strong> Setup ruby for CTF</a></li></ol></li><li class="chapter-item "><a href="../../posts/react/react.html"><strong aria-hidden="true">13.</strong> react</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/react/react_life_cycle.html"><strong aria-hidden="true">13.1.</strong> react life cycle</a></li><li class="chapter-item "><a href="../../posts/react/react_router.html"><strong aria-hidden="true">13.2.</strong> react router</a></li><li class="chapter-item "><a href="../../posts/react/react_this.html"><strong aria-hidden="true">13.3.</strong> react this</a></li><li class="chapter-item "><a href="../../posts/react/react_interviw.html"><strong aria-hidden="true">13.4.</strong> react interview</a></li><li class="chapter-item "><a href="../../posts/react/important_react_interview.html"><strong aria-hidden="true">13.5.</strong> important react interview</a></li><li class="chapter-item "><a href="../../posts/react/react_quick_reference.html"><strong aria-hidden="true">13.6.</strong> react quick reference</a></li><li class="chapter-item "><a href="../../posts/react/redux_quick_reference.html"><strong aria-hidden="true">13.7.</strong> redux quick reference</a></li></ol></li><li class="chapter-item "><a href="../../posts/vue/vue.html"><strong aria-hidden="true">14.</strong> vue</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/vue/vue_ajax.html"><strong aria-hidden="true">14.1.</strong> vue ajax</a></li></ol></li><li class="chapter-item "><a href="../../posts/angular/angular.html"><strong aria-hidden="true">15.</strong> angular</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/angular/controller_communication.html"><strong aria-hidden="true">15.1.</strong> controller communication</a></li><li class="chapter-item "><a href="../../posts/angular/creating_custom_directives.html"><strong aria-hidden="true">15.2.</strong> creating custom directives</a></li><li class="chapter-item "><a href="../../posts/angular/directive_notes.html"><strong aria-hidden="true">15.3.</strong> directive notes</a></li><li class="chapter-item "><a href="../../posts/angular/directive_communication.html"><strong aria-hidden="true">15.4.</strong> directive communication</a></li><li class="chapter-item "><a href="../../posts/angular/post_params.html"><strong aria-hidden="true">15.5.</strong> post params</a></li><li class="chapter-item "><a href="../../posts/angular/read_json_angular.html"><strong aria-hidden="true">15.6.</strong> read json angular</a></li><li class="chapter-item "><a href="../../posts/angular/same_route_reload.html"><strong aria-hidden="true">15.7.</strong> same route reload</a></li></ol></li><li class="chapter-item "><a href="../../posts/css/css.html"><strong aria-hidden="true">16.</strong> css</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/css/use_css_media.html"><strong aria-hidden="true">16.1.</strong> use css media</a></li></ol></li><li class="chapter-item "><a href="../../posts/php/php.html"><strong aria-hidden="true">17.</strong> php</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/php/for_php_string_implment_some_extemtion_functions.html"><strong aria-hidden="true">17.1.</strong> for php string implment some extemtion functions</a></li><li class="chapter-item "><a href="../../posts/php/php_cheatsheet.html"><strong aria-hidden="true">17.2.</strong> PHP cheatsheet</a></li></ol></li><li class="chapter-item "><a href="../../posts/leetcode/leetcode.html"><strong aria-hidden="true">18.</strong> leetcode</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/leetcode/rust_leetcode.html"><strong aria-hidden="true">18.1.</strong> rust leetcode</a></li><li class="chapter-item "><a href="../../posts/leetcode/rust_codewar.html"><strong aria-hidden="true">18.2.</strong> rust codewar</a></li><li class="chapter-item "><a href="../../posts/leetcode/swift_codewar.html"><strong aria-hidden="true">18.3.</strong> swift codewar</a></li><li class="chapter-item "><a href="../../posts/leetcode/js_leetcode.html"><strong aria-hidden="true">18.4.</strong> js leetcode</a></li><li class="chapter-item "><a href="../../posts/leetcode/java_leetcode.html"><strong aria-hidden="true">18.5.</strong> java leetcode</a></li><li class="chapter-item "><a href="../../posts/leetcode/rust_huawei.html"><strong aria-hidden="true">18.6.</strong> huawei test</a></li><li class="chapter-item "><a href="../../posts/leetcode/rust_utils.html"><strong aria-hidden="true">18.7.</strong> rust common functions</a></li><li class="chapter-item "><a href="../../posts/leetcode/olympiad_training.html"><strong aria-hidden="true">18.8.</strong> Computer olympiad training</a></li></ol></li><li class="chapter-item "><a href="../../posts/ctf/CTF.html"><strong aria-hidden="true">19.</strong> ctf</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="../../posts/ctf/CTF_Note.html"><strong aria-hidden="true">19.1.</strong> CTF Note</a></li><li class="chapter-item "><a href="../../posts/ctf/0.1_Web.html"><strong aria-hidden="true">19.2.</strong> Web</a></li><li class="chapter-item "><a href="../../posts/ctf/4.1_Misc.html"><strong aria-hidden="true">19.3.</strong> Misc</a></li><li class="chapter-item "><a href="../../posts/ctf/3.2_PWN_note.html"><strong aria-hidden="true">19.4.</strong> PWN</a></li><li class="chapter-item "><a href="../../posts/ctf/3.1_Crypto.html"><strong aria-hidden="true">19.5.</strong> Crypto</a></li><li class="chapter-item "><a href="../../posts/ctf/3.4_RSA_note.html"><strong aria-hidden="true">19.6.</strong> Rsa attack</a></li><li class="chapter-item "><a href="../../posts/ctf/3.5_Base64.html"><strong aria-hidden="true">19.7.</strong> Base64</a></li><li class="chapter-item "><a href="../../posts/ctf/0.0_SQL Injection Cheatsheet.html"><strong aria-hidden="true">19.8.</strong> SQL Injection Cheatsheet</a></li><li class="chapter-item "><a href="../../posts/ctf/1.1_SQL_injection.html"><strong aria-hidden="true">19.9.</strong> SQL Injection</a></li><li class="chapter-item "><a href="../../posts/ctf/1.2_SQL_injection_UNION_attacks.html"><strong aria-hidden="true">19.10.</strong> SQL Injection UNION attacks</a></li><li class="chapter-item "><a href="../../posts/ctf/1.3_Blind SQL injection.html"><strong aria-hidden="true">19.11.</strong> Blind SQL Injection</a></li><li class="chapter-item "><a href="../../posts/ctf/1.4_Code Injection.html"><strong aria-hidden="true">19.12.</strong> Code Injection</a></li><li class="chapter-item "><a href="../../posts/ctf/1.5_SSRF.html"><strong aria-hidden="true">19.13.</strong> SSRF</a></li><li class="chapter-item "><a href="../../posts/ctf/1.6_OS command injection.html"><strong aria-hidden="true">19.14.</strong> OS command injection</a></li><li class="chapter-item "><a href="../../posts/ctf/1.7_Local file inclusion.html"><strong aria-hidden="true">19.15.</strong> Local file inclusion</a></li><li class="chapter-item "><a href="../../posts/ctf/1.8_Remote file inclusion.html"><strong aria-hidden="true">19.16.</strong> Remote file inclusion</a></li><li class="chapter-item "><a href="../../posts/ctf/1.9_CSRFm.html"><strong aria-hidden="true">19.17.</strong> CSRF</a></li><li class="chapter-item "><a href="../../posts/ctf/1.10_NoSQL injection.html"><strong aria-hidden="true">19.18.</strong> NoSQL injection</a></li><li class="chapter-item "><a href="../../posts/ctf/1.11_JSON injection.html"><strong aria-hidden="true">19.19.</strong> JSON injection</a></li><li class="chapter-item "><a href="../../posts/ctf/1.12_CTF_Web_SQL_Note.html"><strong aria-hidden="true">19.20.</strong> CTF Web SQL Note</a></li><li class="chapter-item "><a href="../../posts/ctf/2.1_XXE.html"><strong aria-hidden="true">19.21.</strong> XXE</a></li><li class="chapter-item "><a href="../../posts/ctf/2.2_XSS.html"><strong aria-hidden="true">19.22.</strong> XSS</a></li><li class="chapter-item "><a href="../../posts/ctf/2.3_Upload File.html"><strong aria-hidden="true">19.23.</strong> Upload File</a></li><li class="chapter-item "><a href="../../posts/ctf/2.4_serialize_unserialize.html"><strong aria-hidden="true">19.24.</strong> serialize unserialize</a></li><li class="chapter-item "><a href="../../posts/ctf/2.5_Race condition.html"><strong aria-hidden="true">19.25.</strong> Race condition</a></li><li class="chapter-item "><a href="../../posts/ctf/3.2_PWN_note.html"><strong aria-hidden="true">19.26.</strong> PWN_note</a></li><li class="chapter-item "><a href="../../posts/ctf/3.3_pwn HCTF2016 brop.html"><strong aria-hidden="true">19.27.</strong> pwn HCTF2016 brop</a></li><li class="chapter-item "><a href="../../posts/ctf/pwn_patch_defense_skill.html"><strong aria-hidden="true">19.28.</strong> PWN Patch defense skill</a></li><li class="chapter-item "><a href="../../posts/ctf/pwn_stack_overflow.html"><strong aria-hidden="true">19.29.</strong> PWN stack overflow</a></li><li class="chapter-item "><a href="../../posts/ctf/pwn_heap_overflow.html"><strong aria-hidden="true">19.30.</strong> PWN heap overflow</a></li><li class="chapter-item "><a href="../../posts/ctf/pwn_format_string_vulnerability.html"><strong aria-hidden="true">19.31.</strong> PWN Format String Vulnerability</a></li><li class="chapter-item "><a href="../../posts/ctf/kali_linux_tutorials.html"><strong aria-hidden="true">19.32.</strong> Kali linux tutorials</a></li><li class="chapter-item "><a href="../../posts/ctf/google_dorks_2023_lists.html"><strong aria-hidden="true">19.33.</strong> Google Dorks 2023 Lists</a></li><li class="chapter-item "><a href="../../posts/ctf/dvwa_writeup.html"><strong aria-hidden="true">19.34.</strong> DVWA WriteUp</a></li><li class="chapter-item "><a href="../../posts/ctf/bwapp_writeup.html"><strong aria-hidden="true">19.35.</strong> bWAPP WriteUp</a></li><li class="chapter-item "><a href="../../posts/ctf/sqlilabs_writeup.html"><strong aria-hidden="true">19.36.</strong> sqlilabs WriteUp</a></li><li class="chapter-item "><a href="../../posts/ctf/ctf_train_at_hangzhou.html"><strong aria-hidden="true">19.37.</strong> ctf train at hangzhou</a></li><li class="chapter-item "><a href="../../posts/ctf/ctf_common_mindmap_list.html"><strong aria-hidden="true">19.38.</strong> ctf common mindmap list</a></li><li class="chapter-item "><a href="../../posts/ctf/error_based_sql_injection.html"><strong aria-hidden="true">19.39.</strong> Error Based SQL Injection</a></li><li class="chapter-item "><a href="../../posts/ctf/urlfinder_tutorial.html"><strong aria-hidden="true">19.40.</strong> URLFinder Tutorial</a></li><li class="chapter-item "><a href="../../posts/ctf/observer_ward_tutorial.html"><strong aria-hidden="true">19.41.</strong> observer_ward Tutorial</a></li><li class="chapter-item "><a href="../../posts/ctf/mysql_udf_.html"><strong aria-hidden="true">19.42.</strong> MySQL UDF 提权</a></li><li class="chapter-item "><a href="../../posts/ctf/nuclei__tutorial.html"><strong aria-hidden="true">19.43.</strong> Nuclei Tutorial</a></li><li class="chapter-item "><a href="../../posts/ctf/2024_ctf_solution_thinking.html"><strong aria-hidden="true">19.44.</strong> 2024 ctf solution thinking</a></li><li class="chapter-item "><a href="../../posts/ctf/man_che_si_te_bian_ma.html"><strong aria-hidden="true">19.45.</strong> 曼彻斯特编码</a></li></ol></li></ol>
|
||
</div>
|
||
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
|
||
<div class="sidebar-resize-indicator"></div>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- Track and set sidebar scroll position -->
|
||
<script>
|
||
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
|
||
sidebarScrollbox.addEventListener('click', function(e) {
|
||
if (e.target.tagName === 'A') {
|
||
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
|
||
}
|
||
}, { passive: true });
|
||
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
|
||
sessionStorage.removeItem('sidebar-scroll');
|
||
if (sidebarScrollTop) {
|
||
// preserve sidebar scroll position when navigating via links within sidebar
|
||
sidebarScrollbox.scrollTop = sidebarScrollTop;
|
||
} else {
|
||
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
|
||
var activeSection = document.querySelector('#sidebar .active');
|
||
if (activeSection) {
|
||
activeSection.scrollIntoView({ block: 'center' });
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<div id="page-wrapper" class="page-wrapper">
|
||
|
||
<div class="page">
|
||
<div id="menu-bar-hover-placeholder"></div>
|
||
<div id="menu-bar" class="menu-bar sticky">
|
||
<div class="left-buttons">
|
||
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
||
<i class="fa fa-bars"></i>
|
||
</label>
|
||
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
||
<i class="fa fa-paint-brush"></i>
|
||
</button>
|
||
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
||
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
||
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
||
</ul>
|
||
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
||
<i class="fa fa-search"></i>
|
||
</button>
|
||
</div>
|
||
|
||
<h1 class="menu-title">Andrew's Blog</h1>
|
||
|
||
<div class="right-buttons">
|
||
<a href="https://gitlink.org.cn/dnrops/dnrops.gitlink.net.git" title="Git repository" aria-label="Git repository">
|
||
<i id="git-repository-button" class="fa fa-github"></i>
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div id="search-wrapper" class="hidden">
|
||
<form id="searchbar-outer" class="searchbar-outer">
|
||
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
||
</form>
|
||
<div id="searchresults-outer" class="searchresults-outer hidden">
|
||
<div id="searchresults-header" class="searchresults-header"></div>
|
||
<ul id="searchresults">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
||
<script>
|
||
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
||
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
||
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
||
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
||
});
|
||
</script>
|
||
|
||
<div id="content" class="content">
|
||
<main>
|
||
<h1 id="git-简单使用说明"><a class="header" href="#git-简单使用说明">Git 简单使用说明</a></h1>
|
||
<p>1安装git:
|
||
git是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可。
|
||
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
|
||
2 配置用户名:</p>
|
||
<pre><code>git config --global user.name "Your Name"
|
||
git config --global user.email "email@example.com"
|
||
</code></pre>
|
||
<p>3、创建仓库(或者 克隆一个远程仓库 ):</p>
|
||
<pre><code>git init
|
||
Initialized empty Git repository in /Users/michael/learngit/.git/ (告诉你是一个空的仓库)
|
||
</code></pre>
|
||
<p>请确保目录名(包括父目录)不包含中文
|
||
4、添加文件到仓库:
|
||
把文件(readme.txt)放在创建的仓库内</p>
|
||
<pre><code>git add readme.txt //可反复多次使用,
|
||
</code></pre>
|
||
<p>添加多个文件;</p>
|
||
<pre><code>git add .
|
||
</code></pre>
|
||
<p>(.)点表示当前目录下的所有内容,交给git管理,也就是提交到了git的本地仓库。 用命令git commit告诉Git,把文件提交到仓库:</p>
|
||
<pre><code>git commit -m "Update README.md, add the front-end interview questions "
|
||
[master (root-commit) cb926e7] wrote a readme file
|
||
1 file changed, 2 insertions(+)
|
||
create mode 100644 readme.txt
|
||
</code></pre>
|
||
<p>5、修改文件后,更新仓库</p>
|
||
<pre><code>git status 查看仓库当前的状态, 告诉我们,什么文件被修改过了,但还没有准备提交的修改。
|
||
git diff 文件名, 查看具体修改了什么内容
|
||
git add 文件名 更新和添加一样
|
||
git commit
|
||
</code></pre>
|
||
<p>6、版本回退:
|
||
先 git log 添加的注释
|
||
也可以:git reflog 记录你的每一次添加命令和注释 和commit_id:
|
||
只回到上一个版本就是HEAD^,</p>
|
||
<pre><code>git reset --hard HEAD^
|
||
</code></pre>
|
||
<p>上上一个版本就是HEAD^^ git reset –hard HEAD^^</p>
|
||
<pre><code>git reset --hard commit_id。
|
||
</code></pre>
|
||
<p>7、暂存区
|
||
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。 第一次修改 -> add -> 第二次修改 -> add -> commit
|
||
只会提交第一次的修改内容到主分支
|
||
8、撤销提交操作(add)</p>
|
||
<pre><code>git checkout -- readme.txt //(--很重要,没有--,就变成了“创建一个新分支”的命令)
|
||
</code></pre>
|
||
<p>把readme.txt文件在工作区的修改全部撤销,这里有两种情况: 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令</p>
|
||
<pre><code>git checkout -- file
|
||
</code></pre>
|
||
<p>一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
|
||
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,
|
||
第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作
|
||
二是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
|
||
总之,就是让这个文件回到【最近一次git commit后】 或【git add之前】的状态;
|
||
假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢? 可以回退到上一个版本。 不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。
|
||
9、删除文件</p>
|
||
<pre><code>git rm test.txt
|
||
rm 'test.txt'
|
||
m "remove test.txt"
|
||
git commit
|
||
-
|
||
//如果删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
|
||
git checkout -- test.txt
|
||
</code></pre>
|
||
<p>10、设置SSH Key
|
||
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要SSH Key
|
||
默认存放在 C:\Users\Administrator.ssh id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。</p>
|
||
<pre><code>ssh-keygen -t rsa -C “mygood@126.com"
|
||
</code></pre>
|
||
<p>为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,
|
||
而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
|
||
11、绑定到远程仓库 (注意格式的gitlab,不支持ssh,请使用http)</p>
|
||
<pre><code>关联一个远程库 git remote add origin git@github.com:markyun/beilibao.git
|
||
远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
|
||
</code></pre>
|
||
<p>12、推送到远程仓库</p>
|
||
<pre><code>git remote -v //查看你当前项目远程连接的是哪个仓库地址。
|
||
git push -u origin master //将本地的项目提交到远程仓库中。
|
||
</code></pre>
|
||
<p>正常情况下这样显示:</p>
|
||
<pre><code>git push -u origin master
|
||
Counting objects: 19, done.
|
||
o 4 threads.
|
||
Compressing objects: 100% (
|
||
Delta compression using up
|
||
t19/19), done.
|
||
Writing objects: 100% (19/19), 13.73 KiB, done.
|
||
lliao/learngit.git
|
||
* [new branch]
|
||
Total 23 (delta 6), reused 0 (delta 0)
|
||
To git@github.com:micha
|
||
e master -> master
|
||
to track remote branch master from origin.
|
||
Branch master set u
|
||
p
|
||
</code></pre>
|
||
<p>如果提示:</p>
|
||
<pre><code>ssh:connect to host github.com port 22:bad file number could not read from remote repository
|
||
</code></pre>
|
||
<p>(说不能读取远端库,请确保有正确的访问权限并且仓库存在。看看你本机22端口有没有打开)</p>
|
||
<pre><code>ssh github.com 测试是否能正常使用SSH
|
||
</code></pre>
|
||
<p>当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:</p>
|
||
<pre><code>The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
|
||
RSA key fingerprint is xx.xx.xx.xx.xx.
|
||
cting (yes/no)?
|
||
Are you sure you want to continue conn
|
||
e
|
||
</code></pre>
|
||
<p>这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
|
||
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:</p>
|
||
<pre><code>Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
|
||
</code></pre>
|
||
<p>这个警告只会出现一次,后面的操作就不会有任何警告了。
|
||
13、从服务器上把一个远程仓库中的工程完全的拷贝下来</p>
|
||
<pre><code>git clone git@github.com:china-UED/test.git
|
||
假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?
|
||
git fetch origin //取得远程更新,这里可以看做是准备要取了
|
||
git merge origin/master //把更新的内容合并到本地分支/master
|
||
</code></pre>
|
||
<p>—————-待补充————–
|
||
14、创建与合并分支
|
||
15、冲突的处理
|
||
16、多人协作
|
||
17、其他</p>
|
||
<pre><code>git config --list 查看配置
|
||
git config --global core.autocrlf false 关闭 github的换行符自动转换”功能
|
||
</code></pre>
|
||
<p>补充 Git 命令快速查询表</p>
|
||
<pre><code>命令 简要说明
|
||
git add 添加至暂存区
|
||
git add–interactive 交互式添加
|
||
git apply 应用补丁
|
||
git am 应用邮件格式补丁
|
||
git annotate 同义词,等同于 git blame
|
||
git archive 文件归档打包
|
||
git bisect 二分查找
|
||
git blame 文件逐行追溯
|
||
git branch 分支管理
|
||
git cat-file 版本库对象研究工具
|
||
git checkout 检出到工作区、切换或创建分支
|
||
git cherry-pick 提交拣选
|
||
git citool 图形化提交,相当于 git gui 命令
|
||
git clean 清除工作区未跟踪文件
|
||
git clone 克隆版本库
|
||
git commit 提交
|
||
git config 查询和修改配置
|
||
git describe 通过里程碑直观地显示提交ID
|
||
git diff 差异比较
|
||
git difftool 调用图形化差异比较工具
|
||
git fetch 获取远程版本库的提交
|
||
git format-patch 创建邮件格式的补丁文件。参见 git am 命令
|
||
git grep 文件内容搜索定位工具
|
||
git gui 基于Tcl/Tk的图形化工具,侧重提交等操作
|
||
git help 帮助
|
||
git init 版本库初始化
|
||
git init-db* 同义词,等同于 git init
|
||
git log 显示提交日志
|
||
git merge 分支合并
|
||
git mergetool 图形化冲突解决
|
||
git mv 重命名
|
||
git pull 拉回远程版本库的提交
|
||
git push 推送至远程版本库
|
||
git reBase 分支变基
|
||
git rebase–interactive 交互式分支变基
|
||
git reflog 分支等引用变更记录管理
|
||
git remote 远程版本库管理
|
||
git repo-config* 同义词,等同于 git config
|
||
git reset 重置改变分支“游标”指向
|
||
git rev-parse 将各种引用表示法转换为哈希值等
|
||
git revert 反转提交
|
||
git rm 删除文件
|
||
git show 显示各种类型的对象
|
||
git stage* 同义词,等同于 git add
|
||
git stash 保存和恢复进度
|
||
git status 显示工作区文件状态
|
||
git tag 里程碑管理
|
||
</code></pre>
|
||
<p>2、对象库操作相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git commit-tree 从树对象创建提交
|
||
git hash-object 从标准输入或文件计算哈希值或创建对象
|
||
git ls-files 显示工作区和暂存区文件
|
||
git ls-tree 显示树对象包含的文件
|
||
git mktag 读取标准输入创建一个里程碑对象
|
||
git mktree 读取标准输入创建一个树对象
|
||
git read-tree 读取树对象到暂存区
|
||
git update-index 工作区内容注册到暂存区及暂存区管理
|
||
git unpack-file 创建临时文件包含指定 blob 的内容
|
||
git write-tree 从暂存区创建一个树对象
|
||
</code></pre>
|
||
<p>3、引用操作相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git check-ref-format 检查引用名称是否符合规范
|
||
git for-each-ref 引用迭代器,用于shell编程
|
||
git ls-remote 显示远程版本库的引用
|
||
git name-rev 将提交ID显示为友好名称
|
||
git peek-remote* 过时命令,请使用 git ls-remote
|
||
git rev-list 显示版本范围
|
||
git show-branch 显示分支列表及拓扑关系
|
||
git show-ref 显示本地引用
|
||
git symbolic-ref 显示或者设置符号引用
|
||
git update-ref 更新引用的指向
|
||
git verify-tag 校验 GPG 签名的Tag
|
||
</code></pre>
|
||
<p>4、版本库管理相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git count-objects 显示松散对象的数量和磁盘占用
|
||
git filter-branch 版本库重构
|
||
git fsck 对象库完整性检查
|
||
git fsck-objects* 同义词,等同于 git fsck
|
||
git gc 版本库存储优化
|
||
git index-pack 从打包文件创建对应的索引文件
|
||
git lost-found* 过时,请使用 git fsck –lost-found 命令
|
||
git pack-objects 从标准输入读入对象ID,打包到文件
|
||
git pack-redundant 查找多余的 pack 文件
|
||
git pack-refs 将引用打包到 .git/packed-refs 文件中
|
||
git prune 从对象库删除过期对象
|
||
git prune-packed 将已经打包的松散对象删除
|
||
git relink 为本地版本库中相同的对象建立硬连接
|
||
git repack 将版本库未打包的松散对象打包
|
||
git show-index 读取包的索引文件,显示打包文件中的内容
|
||
git unpack-objects 从打包文件释放文件
|
||
git verify-pack 校验对象库打包文件
|
||
</code></pre>
|
||
<p>5、数据传输相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git fetch-pack 执行 git fetch 或 git pull 命令时在本地执行此命令,用于从其他版本库获取缺失的对象
|
||
git receive-pack 执行 git push 命令时在远程执行的命令,用于接受推送的数据
|
||
git send-pack 执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据
|
||
git upload-archive 执行 git archive –remote 命令基于远程版本库创建归档时,远程版本库执行此命令传送归档
|
||
git upload-pack 执行 git fetch 或 git pull 命令时在远程执行此命令,将对象打包、上传
|
||
</code></pre>
|
||
<p>6、邮件相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git imap-send 将补丁通过 IMAP 发送
|
||
git mailinfo 从邮件导出提交说明和补丁
|
||
git mailsplit 将 mbox 或 Maildir 格式邮箱中邮件逐一提取为文件
|
||
git request-pull 创建包含提交间差异和执行PULL操作地址的信息
|
||
git send-email 发送邮件
|
||
</code></pre>
|
||
<p>7、协议相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git daemon 实现Git协议
|
||
git http-backend 实现HTTP协议的CGI程序,支持智能HTTP协议
|
||
git instaweb 即时启动浏览器通过 gitweb 浏览当前版本库
|
||
git shell 受限制的shell,提供仅执行Git命令的SSH访问
|
||
git update-server-info 更新哑协议需要的辅助文件
|
||
git http-fetch 通过HTTP协议获取版本库
|
||
git http-push 通过HTTP/DAV协议推送
|
||
git remote-ext 由Git命令调用,通过外部命令提供扩展协议支持
|
||
git remote-fd 由Git命令调用,使用文件描述符作为协议接口
|
||
git remote-ftp 由Git命令调用,提供对FTP协议的支持
|
||
git remote-ftps 由Git命令调用,提供对FTPS协议的支持
|
||
git remote-http 由Git命令调用,提供对HTTP协议的支持
|
||
git remote-https 由Git命令调用,提供对HTTPS协议的支持
|
||
git remote-testgit 协议扩展示例脚本
|
||
</code></pre>
|
||
<p>8、版本库转换和交互相关命令</p>
|
||
<pre><code>命令 简要说明
|
||
git archimport 导入Arch版本库到Git
|
||
git bundle 提交打包和解包,以便在不同版本库间传递
|
||
git cvsexportcommit 将Git的一个提交作为一个CVS检出
|
||
git cvsimport 导入CVS版本库到Git。或者使用 cvs2git
|
||
git cvsserver Git的CVS协议模拟器,可供CVS命令访问Git版本库
|
||
git fast-export 将提交导出为 git-fast-import 格式
|
||
git fast-import 其他版本库迁移至Git的通用工具
|
||
git svn Git 作为前端操作 Subversion
|
||
</code></pre>
|
||
<p>9、合并相关的辅助命令</p>
|
||
<pre><code>命令 简要说明
|
||
git merge-base 供其他脚本调用,找到两个或多个提交最近的共同祖先
|
||
git merge-file 针对文件的两个不同版本执行三向文件合并
|
||
git merge-index 对index中的冲突文件调用指定的冲突解决工具
|
||
git merge-octopus 合并两个以上分支。参见 git merge 的octopus合并策略
|
||
git merge-one-file 由 git merge-index 调用的标准辅助程序
|
||
git merge-ours 合并使用本地版本,抛弃他人版本。参见 git merge 的ours合并策略
|
||
git merge-recursive 针对两个分支的三向合并。参见 git merge 的recursive合并策略
|
||
git merge-resolve 针对两个分支的三向合并。参见 git merge 的resolve合并策略
|
||
git merge-subtree 子树合并。参见 git merge 的 subtree 合并策略
|
||
git merge-tree 显式三向合并结果,不改变暂存区
|
||
git fmt-merge-msg 供执行合并操作的脚本调用,用于创建一个合并提交说明
|
||
git rerere 重用所记录的冲突解决方案
|
||
</code></pre>
|
||
<p>10、 杂项</p>
|
||
<pre><code>命令 简要说明
|
||
git bisect–helper 由 git bisect 命令调用,确认二分查找进度
|
||
git check-attr 显示某个文件是否设置了某个属性
|
||
git checkout-index 从暂存区拷贝文件至工作区
|
||
git cherry 查找没有合并到上游的提交
|
||
git diff-files 比较暂存区和工作区,相当于 git diff –raw
|
||
git diff-index 比较暂存区和版本库,相当于 git diff –cached –raw
|
||
git diff-tree 比较两个树对象,相当于 git diff –raw A B
|
||
git difftool–helper 由 git difftool 命令调用,默认要使用的差异比较工具
|
||
git get-tar-commit-id 从 git archive 创建的 tar 包中提取提交ID
|
||
git gui–askpass 命令 git gui 的获取用户口令输入界面
|
||
git notes 提交评论管理
|
||
git patch-id 补丁过滤行号和空白字符后生成补丁唯一ID
|
||
git quiltimport 将Quilt补丁列表应用到当前分支
|
||
git replace 提交替换
|
||
git shortlog 对 git log 的汇总输出,适合于产品发布说明
|
||
git stripspace 删除空行,供其他脚本调用
|
||
git submodule 子模组管理
|
||
git tar-tree 过时命令,请使用 git archive
|
||
git var 显示 Git 环境变量
|
||
git web–browse 启动浏览器以查看目录或文件
|
||
git whatchanged 显示提交历史及每次提交的改动
|
||
git-mergetool–lib 包含于其他脚本中,提供合并/差异比较工具的选择和执行
|
||
git-parse-remote 包含于其他脚本中,提供操作远程版本库的函数
|
||
git-sh-setup 包含于其他脚本中,提供 shell 编程的函数库
|
||
</code></pre>
|
||
|
||
</main>
|
||
|
||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||
<!-- Mobile navigation buttons -->
|
||
<a rel="prev" href="../../posts/linux/command_list.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||
<i class="fa fa-angle-left"></i>
|
||
</a>
|
||
|
||
<a rel="next prefetch" href="../../posts/linux/tar.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||
<i class="fa fa-angle-right"></i>
|
||
</a>
|
||
|
||
<div style="clear: both"></div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
|
||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||
<a rel="prev" href="../../posts/linux/command_list.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||
<i class="fa fa-angle-left"></i>
|
||
</a>
|
||
|
||
<a rel="next prefetch" href="../../posts/linux/tar.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||
<i class="fa fa-angle-right"></i>
|
||
</a>
|
||
</nav>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<script>
|
||
window.playground_line_numbers = true;
|
||
</script>
|
||
|
||
<script>
|
||
window.playground_copyable = true;
|
||
</script>
|
||
|
||
<script src="../../ace.js"></script>
|
||
<script src="../../editor.js"></script>
|
||
<script src="../../mode-rust.js"></script>
|
||
<script src="../../theme-dawn.js"></script>
|
||
<script src="../../theme-tomorrow_night.js"></script>
|
||
|
||
<script src="../../elasticlunr.min.js"></script>
|
||
<script src="../../mark.min.js"></script>
|
||
<script src="../../searcher.js"></script>
|
||
|
||
<script src="../../clipboard.min.js"></script>
|
||
<script src="../../highlight.js"></script>
|
||
<script src="../../book.js"></script>
|
||
|
||
<!-- Custom JS scripts -->
|
||
<script src="../../src/js/custom.js"></script>
|
||
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|