{"id":5437,"date":"2020-08-18T16:13:06","date_gmt":"2020-08-18T08:13:06","guid":{"rendered":"http:\/\/39.97.231.10\/?p=5437"},"modified":"2020-08-18T16:13:06","modified_gmt":"2020-08-18T08:13:06","slug":"%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6git%e3%80%81-github%e3%80%81gitlab%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"http:\/\/www.weijing.co\/?p=5437","title":{"rendered":"\u7248\u672c\u63a7\u5236Git\u3001 github\u3001gitlab\u8be6\u89e3"},"content":{"rendered":"<header class=\\\"entry-header\\\"><\/header>\n<div class=\\\"entry-content\\\">\n<div class=\\\"begin-single-meta\\\"><span style=\\\"color: #1e73be; font-size: 1.38462rem;\\\">1.1 \u5173\u4e8e\u7248\u672c\u63a7\u5236<\/span><\/div>\n<div class=\\\"single-content\\\">\n<h3><span id=\\\"111\\\">1.1.1\u00a0\u672c\u5730\u7248\u672c\u63a7\u5236<\/span><\/h3>\n<p>\u672c\u5730\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u00a0\u8bb8\u591a\u4eba\u4e60\u60ef\u7528\u590d\u5236\u6574\u4e2a\u9879\u76ee\u76ee\u5f55\u7684\u65b9\u5f0f\u6765\u4fdd\u5b58\u4e0d\u540c\u7684\u7248\u672c\uff0c\u6216\u8bb8\u8fd8\u4f1a\u6539\u540d\u52a0\u4e0a\u5907\u4efd\u65f6\u95f4\u4ee5\u793a\u533a\u522b\u3002\u8fd9\u4e48\u505a\u552f\u4e00\u7684\u00a0\u597d\u5904\u5c31\u662f\u7b80\u5355\uff0c\u4f46\u662f\u7279\u522b\u5bb9\u6613\u72af\u9519\u3002\u6709\u65f6\u5019\u4f1a\u6df7\u6dc6\u6240\u5728\u7684\u5de5\u4f5c\u76ee\u5f55\uff0c\u4e00\u4e0d\u5c0f\u5fc3\u4f1a\u5199\u9519\u6587\u4ef6\u6216\u8005\u8986\u76d6\u610f\u60f3\u5916\u7684\u6587\u4ef6\u3002<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170717667-909081145.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170717667-909081145.png\\\" \/><\/p>\n<h3><span id=\\\"112\\\">1.1.2\u00a0\u96c6\u4e2d\u5316\u7684\u7248\u672c\u63a7\u5236\u7cfb\u7edf<\/span><\/h3>\n<p>\u5982\u4f55\u8ba9\u5728\u4e0d\u540c\u7cfb\u7edf\u4e0a\u7684\u5f00\u53d1\u8005\u534f\u540c\u5de5\u4f5c\uff1f\u4e8e\u662f\uff0c\u96c6\u4e2d\u5316\u7684\u7248\u672c\u63a7\u5236\u7cfb\u7edf\uff08Centralized Version \u00a0Control Systems\uff0c\u7b80\u79f0\u00a0CVCS\uff09\u5e94\u8fd0\u800c\u751f\u3002\u8fd9\u7c7b\u7cfb\u7edf\uff0c\u8bf8\u5982\u00a0CVS\u3001Subversion\u00a0\u4ee5\u53caPerforce\u00a0\u7b49\uff0c\u90fd\u6709\u4e00\u4e2a\u5355\u4e00\u7684\u96c6\u4e2d\u7ba1\u7406\u7684\u670d\u52a1\u5668\uff0c\u4fdd\u5b58\u6240\u6709\u6587\u4ef6\u7684\u4fee\u8ba2\u7248\u672c\uff0c\u800c\u534f\u540c\u5de5\u4f5c\u7684\u4eba\u4eec\u90fd\u901a\u8fc7\u5ba2\u6237\u7aef\u8fde\u5230\u8fd9\u53f0\u670d\u52a1\u5668\uff0c\u53d6\u51fa\u6700\u65b0\u7684\u6587\u4ef6\u6216\u8005\u63d0\u4ea4\u66f4\u65b0\u3002\u591a\u5e74\u4ee5\u6765\uff0c\u8fd9\u5df2\u6210\u4e3a\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u7684\u6807\u51c6\u505a\u6cd5\u3002<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170728011-1466806727.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170728011-1466806727.png\\\" \/><\/p>\n<h3><span id=\\\"113\\\">1.1.3\u00a0\u5206\u5e03\u5f0f\u7248\u672c\u63a7\u5236\u7cfb\u7edf<\/span><\/h3>\n<p>\u5728\u8fd9\u7c7b\u7cfb\u7edf\u4e2d\uff0c\u50cfGit\u3001Mercurial\u3001Bazaar\u00a0\u4ee5\u53ca\u00a0Darcs\u00a0\u7b49\uff0c\u5ba2\u6237\u7aef\u5e76\u4e0d\u53ea\u63d0\u53d6\u6700\u65b0\u7248\u672c\u7684\u6587\u4ef6\u5feb\u7167\uff0c\u800c\u662f\u628a\u4ee3\u7801\u4ed3\u5e93\u5b8c\u6574\u5730\u955c\u50cf\u4e0b\u6765\u3002\u8fd9\u4e48\u4e00\u6765\uff0c\u4efb\u4f55\u4e00\u5904\u534f\u540c\u5de5\u4f5c\u7528\u7684\u670d\u52a1\u5668\u53d1\u751f\u6545\u969c\uff0c\u4e8b\u540e\u90fd\u53ef\u4ee5\u7528\u4efb\u4f55\u4e00\u4e2a\u955c\u50cf\u51fa\u6765\u7684\u672c\u5730\u4ed3\u5e93\u6062\u590d\u3002\u56e0\u4e3a\u6bcf\u4e00\u6b21\u7684\u514b\u9686\u64cd\u4f5c\uff0c\u5b9e\u9645\u4e0a\u90fd\u662f\u4e00\u6b21\u5bf9\u4ee3\u7801\u4ed3\u5e93\u7684\u5b8c\u6574\u5907\u4efd\u3002<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170739729-1366084886.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170739729-1366084886.png\\\" \/><\/p>\n<h2><span id=\\\"12_Git\\\">1.2 Git\u7b80\u4ecb<\/span><\/h2>\n<p><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170749808-269525315.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170749808-269525315.png\\\" \/><br \/>\n\u5b98\u7f51\uff1ahttps:\/\/git-scm.com<br \/>\ngit\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7248\u672c\u63a7\u5236\u8f6f\u4ef6\uff0c\u6700\u521d\u7531\u6797\u7eb3\u65af\u00b7\u6258\u74e6\u5179\uff08Linus Torvalds\uff09\u521b\u4f5c\uff0c\u4e8e2005\u5e74\u4ee5GPL\u53d1\u5e03\u3002\u6700\u521d\u76ee\u7684\u662f\u4e3a\u66f4\u597d\u5730\u7ba1\u7406Linux\u5185\u6838\u5f00\u53d1\u800c\u8bbe\u8ba1\u3002<\/p>\n<div>\nGit\u00a0\u5b98\u65b9\u4e2d\u6587\u624b\u518c\u00a0https:\/\/git-scm.com\/book\/zh\/v2\n<\/div>\n<h3><span id=\\\"121_Git\\\">1.2.1 Git\u5386\u53f2<\/span><\/h3>\n<p>\u81ea2002\u5e74\u5f00\u59cb\uff0c\u6797\u7eb3\u65af\u00b7\u6258\u74e6\u5179\u51b3\u5b9a\u4f7f\u7528BitKeeper\u4f5c\u4e3aLinux\u5185\u6838\u4e3b\u8981\u7684\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u7528\u4ee5\u7ef4\u62a4\u4ee3\u7801\u3002\u56e0\u4e3aBitKeeper\u4e3a\u4e13\u6709\u8f6f\u4ef6\uff0c\u8fd9\u4e2a\u51b3\u5b9a\u5728\u793e\u533a\u4e2d\u957f\u671f\u906d\u53d7\u8d28\u7591\u3002\u5728Linux\u793e\u533a\u4e2d\uff0c\u7279\u522b\u662f\u7406\u67e5\u5fb7\u00b7\u65af\u6258\u66fc\u4e0e\u81ea\u7531\u8f6f\u4ef6\u57fa\u91d1\u4f1a\u7684\u6210\u5458\uff0c\u4e3b\u5f20\u5e94\u8be5\u4f7f\u7528\u5f00\u653e\u6e90\u4ee3\u7801\u7684\u8f6f\u4ef6\u6765\u4f5c\u4e3aLinux\u6838\u5fc3\u7684\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u3002\u6797\u7eb3\u65af\u00b7\u6258\u74e6\u5179\u66fe\u8003\u8651\u8fc7\u91c7\u7528\u73b0\u6210\u8f6f\u4ef6\u4f5c\u4e3a\u7248\u672c\u63a7\u5236\u7cfb\u7edf\uff08\u4f8b\u5982Monotone\uff09\uff0c\u4f46\u8fd9\u4e9b\u8f6f\u4ef6\u90fd\u5b58\u5728\u4e00\u4e9b\u95ee\u9898\uff0c\u7279\u522b\u662f\u6027\u80fd\u4e0d\u4f73\u3002\u73b0\u6210\u7684\u65b9\u6848\uff0c\u5982CVS\u7684\u67b6\u6784\uff0c\u53d7\u5230\u6797\u7eb3\u65af\u00b7\u6258\u74e6\u5179\u7684\u6279\u8bc4\u3002<br \/>\n2005\u5e74\uff0c\u5b89\u5fb7\u9c81\u00b7\u5782\u9e20\u5199\u4e86\u4e00\u4e2a\u7b80\u5355\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u8fde\u63a5BitKeeper\u7684\u5b58\u50a8\u5e93\uff0cBitKeeper\u8457\u4f5c\u6743\u62e5\u6709\u8005\u62c9\u91cc\u00b7\u9ea6\u6c83\u4f0a\u8ba4\u4e3a\u5b89\u5fb7\u9c81\u00b7\u5782\u9e20\u5bf9BitKeeper\u5185\u90e8\u4f7f\u7528\u7684\u534f\u8bae\u8fdb\u884c\u9006\u5411\u5de5\u7a0b\uff0c\u51b3\u5b9a\u6536\u56de\u65e0\u507f\u4f7f\u7528BitKeeper\u7684\u6388\u6743\u3002Linux\u5185\u6838\u5f00\u53d1\u56e2\u961f\u4e0eBitMover\u516c\u53f8\u8fdb\u884c\u8e49\u5546\uff0c\u4f46\u65e0\u6cd5\u89e3\u51b3\u4ed6\u4eec\u4e4b\u95f4\u7684\u6b67\u89c1\u3002\u6797\u7eb3\u65af\u00b7\u6258\u74e6\u5179\u51b3\u5b9a\u81ea\u884c\u5f00\u53d1\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u66ff\u4ee3BitKeeper\uff0c\u4ee5\u5341\u5929\u7684\u65f6\u95f4\uff0c\u7f16\u5199\u51fa\u7b2c\u4e00\u4e2agit\u7248\u672c<\/p>\n<h2><span id=\\\"13_git\\\">1.3\u00a0\u5b89\u88c5git<\/span><\/h2>\n<h3><span id=\\\"131\\\">1.3.1\u00a0\u73af\u5883\u8bf4\u660e<\/span><\/h3>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# rpm -qa centos-release\ncentos-release-7-4.1708.el7.centos.x86_64\n[root@gitlab ~]# uname -a\nLinux gitlab 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU\/Linux\n[root@gitlab ~]# getenforce\nDisabled\n[root@gitlab ~]# systemctl status firewalld.service\n\u25cf firewalld.service - firewalld - dynamic firewall daemon\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/firewalld.service; disabled; vendor preset: enabled)\n   Active: inactive (dead)\n     Docs: man:firewalld(1)<\/pre>\n<\/div>\n<div>\n#\u00a0\u672c\u6587\u4f7f\u7528\u7684linux\u7cfb\u7edf\u5747\u4e3a\u8be5\u7cfb\u7edf<br \/>\n#\u00a0\u672c\u6587\u4f7f\u7528\u7684windows\u7cfb\u7edf\u4e3a\u00a0Microsoft Windows [\u7248\u672c\u00a010.0.15063]\n<\/div>\n<h3><span id=\\\"132_YumGit\\\">1.3.2 Yum\u5b89\u88c5Git<\/span><\/h3>\n<p># centos\u00a0\u81ea\u5e26git<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# rpm -qa git\ngit-1.8.3.1-11.el7.x86_64<\/pre>\n<\/div>\n<p>#\u00a0\u5b89\u88c5\u65b9\u6cd5<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>yum install git -y<\/pre>\n<\/div>\n<h3><span id=\\\"133\\\">1.3.3\u00a0\u7f16\u8bd1\u5b89\u88c5<\/span><\/h3>\n<p>\u7f16\u8bd1\u5b89\u88c5\u53ef\u4ee5\u5b89\u88c5\u8f83\u65b0\u7248\u672c\u7684git<br \/>\nGit\u4e0b\u8f7d\u5730\u5740\uff1a\u00a0https:\/\/github.com\/git\/git\/releases<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre># \u5b89\u88c5\u4f9d\u8d56\u5173\u7cfb\nyum install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel\n# \u7f16\u8bd1\u5b89\u88c5\ntar -zxf git-2.0.0.tar.gz\ncd git-2.0.0\nmake configure\n.\/configure --prefix=\/usr\nmake\nmake install<\/pre>\n<\/div>\n<h2><span id=\\\"14_Git\\\">1.4\u00a0\u521d\u6b21\u8fd0\u884c\u00a0Git\u00a0\u524d\u7684\u914d\u7f6e<\/span><\/h2>\n<h3><span id=\\\"141_git\\\">1.4.1\u00a0\u914d\u7f6egit<\/span><\/h3>\n<p><em>\u547d\u4ee4\u96c6<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git config --global user.name \\\"clsn\\\"  #\u914d\u7f6egit\u4f7f\u7528\u7528\u6237\ngit config --global user.email \\\"admin@znix.top\\\"  #\u914d\u7f6egit\u4f7f\u7528\u90ae\u7bb1\ngit config --global color.ui true  #\u8bed\u6cd5\u9ad8\u4eae\ngit config --list # \u67e5\u770b\u5168\u5c40\u914d\u7f6e<\/pre>\n<\/div>\n<p><em>\u914d\u7f6e\u8fc7\u7a0b<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# git config --global user.name \\\"clsn\\\"  #\u914d\u7f6egit\u4f7f\u7528\u7528\u6237\n[root@gitlab ~]# git config --global user.email \\\"admin@znix.top\\\"  #\u914d\u7f6egit\u4f7f\u7528\u90ae\u7bb1\n[root@gitlab ~]# git config --global color.ui true  #\u8bed\u6cd5\u9ad8\u4eae\n[root@gitlab ~]# git config --list # \u67e5\u770b\u5168\u5c40\u914d\u7f6e\nuser.name=clsn\nuser.email=admin@znix.top\ncolor.ui=true<\/pre>\n<\/div>\n<p><em>\u751f\u6210\u7684\u914d\u7f6e\u6587\u4ef6<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# cat .gitconfig\n[user]\n    name = clsn\n    email = admin@znix.top\n[color]\n    ui = true<\/pre>\n<\/div>\n<h3><span id=\\\"142\\\">1.4.2\u00a0\u83b7\u53d6\u5e2e\u52a9<\/span><\/h3>\n<p>\u4f7f\u7528Git\u65f6\u9700\u8981\u83b7\u53d6\u5e2e\u52a9\uff0c\u6709\u4e09\u79cd\u65b9\u6cd5\u53ef\u4ee5\u627e\u5230Git\u547d\u4ee4\u7684\u4f7f\u7528\u624b\u518c\uff1a<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git help\ngit  --help\nman git-<\/pre>\n<\/div>\n<p>\u4f8b\u5982\uff0c\u8981\u60f3\u83b7\u5f97\u914d\u7f6e\u547d\u4ee4\u7684\u624b\u518c\uff0c\u6267\u884c<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git help config<\/pre>\n<\/div>\n<h2><span id=\\\"15_Git\\\">1.5\u00a0\u83b7\u53d6\u00a0Git\u00a0\u4ed3\u5e93<em>\uff08\u521d\u59cb\u5316\u4ed3\u5e93\uff09<\/em><\/span><\/h2>\n<div class=\\\"cnblogs_code\\\">\n<pre># \u521b\u5efa\u76ee\u5f55\nmkdir git_data\n# \u8fdb\u5165\u76ee\u5f55\ncd git_data\/\n# \u521d\u59cb\u5316\ngit init\n# \u67e5\u770b\u5de5\u4f5c\u533a\u72b6\u6001\ngit status<\/pre>\n<\/div>\n<p><em>\u64cd\u4f5c\u8fc7\u7a0b<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# mkdir git_data\n[root@gitlab ~]# cd git_data\/\n[root@gitlab git_data]# git init\n\u521d\u59cb\u5316\u7a7a\u7684 Git \u7248\u672c\u5e93\u4e8e \/root\/git_data\/.git\/\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n#\n# \u521d\u59cb\u63d0\u4ea4\n#\n\u65e0\u6587\u4ef6\u8981\u63d0\u4ea4\uff08\u521b\u5efa\/\u62f7\u8d1d\u6587\u4ef6\u5e76\u4f7f\u7528 \\\"git add\\\" \u5efa\u7acb\u8ddf\u8e2a\uff09<\/pre>\n<\/div>\n<h2><span id=\\\"16_Git\\\">1.6 Git\u547d\u4ee4\u5e38\u89c4\u64cd\u4f5c<\/span><\/h2>\n<p>\u5e38\u7528\u547d\u4ee4\u8bf4\u660e<\/p>\n<table border=\\\"1\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">\n<tbody>\n<tr>\n<td width=\\\"20%\\\">\n<p align=\\\"center\\\"><strong>\u547d\u4ee4<\/strong><\/p>\n<\/td>\n<td width=\\\"79%\\\">\n<p align=\\\"center\\\"><strong>\u547d\u4ee4\u8bf4\u660e<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>add\u00a0\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u6dfb\u52a0\u6587\u4ef6\u5185\u5bb9\u81f3\u7d22\u5f15<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>bisect\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u901a\u8fc7\u4e8c\u5206\u67e5\u627e\u5b9a\u4f4d\u5f15\u5165\u00a0bug\u00a0\u7684\u53d8\u66f4<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>branch\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u5217\u51fa\u3001\u521b\u5efa\u6216\u5220\u9664\u5206\u652f<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>checkout<\/strong><\/td>\n<td width=\\\"79%\\\">\u68c0\u51fa\u4e00\u4e2a\u5206\u652f\u6216\u8def\u5f84\u5230\u5de5\u4f5c\u533a<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>clone\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u514b\u9686\u4e00\u4e2a\u7248\u672c\u5e93\u5230\u4e00\u4e2a\u65b0\u76ee\u5f55<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>commit\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u8bb0\u5f55\u53d8\u66f4\u5230\u7248\u672c\u5e93<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>diff\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u663e\u793a\u63d0\u4ea4\u4e4b\u95f4\u3001\u63d0\u4ea4\u548c\u5de5\u4f5c\u533a\u4e4b\u95f4\u7b49\u7684\u5dee\u5f02<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>fetch\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u4ece\u53e6\u5916\u4e00\u4e2a\u7248\u672c\u5e93\u4e0b\u8f7d\u5bf9\u8c61\u548c\u5f15\u7528<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>grep\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u8f93\u51fa\u548c\u6a21\u5f0f\u5339\u914d\u7684\u884c<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>init\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u521b\u5efa\u4e00\u4e2a\u7a7a\u7684<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>Git\u00a0\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u7248\u672c\u5e93\u6216\u91cd\u65b0\u521d\u59cb\u5316\u4e00\u4e2a\u5df2\u5b58\u5728\u7684\u7248\u672c\u5e93<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>log\u00a0\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u663e\u793a\u63d0\u4ea4\u65e5\u5fd7<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>merge\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u5408\u5e76\u4e24\u4e2a\u6216\u66f4\u591a\u5f00\u53d1\u5386\u53f2<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>mv\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u79fb\u52a8\u6216\u91cd\u547d\u540d\u4e00\u4e2a\u6587\u4ef6\u3001\u76ee\u5f55\u6216\u7b26\u53f7\u94fe\u63a5<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>pull\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u83b7\u53d6\u5e76\u5408\u5e76\u53e6\u5916\u7684\u7248\u672c\u5e93\u6216\u4e00\u4e2a\u672c\u5730\u5206\u652f<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>push\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u66f4\u65b0\u8fdc\u7a0b\u5f15\u7528\u548c\u76f8\u5173\u7684\u5bf9\u8c61<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>rebase\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u672c\u5730\u63d0\u4ea4\u8f6c\u79fb\u81f3\u66f4\u65b0\u540e\u7684\u4e0a\u6e38\u5206\u652f\u4e2d<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>reset\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u91cd\u7f6e\u5f53\u524dHEAD\u5230\u6307\u5b9a\u72b6\u6001<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>rm\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u4ece\u5de5\u4f5c\u533a\u548c\u7d22\u5f15\u4e2d\u5220\u9664\u6587\u4ef6<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>show\u00a0\u00a0\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u663e\u793a\u5404\u79cd\u7c7b\u578b\u7684\u5bf9\u8c61<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>status\u00a0<\/strong><\/td>\n<td width=\\\"79%\\\">\u663e\u793a\u5de5\u4f5c\u533a\u72b6\u6001<\/td>\n<\/tr>\n<tr>\n<td width=\\\"20%\\\"><strong>tag<\/strong><\/td>\n<td width=\\\"79%\\\">\u521b\u5efa\u3001\u5217\u51fa\u3001\u5220\u9664\u6216\u6821\u9a8c\u4e00\u4e2aGPG\u7b7e\u540d\u7684\u00a0tag\u00a0\u5bf9\u8c61<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong><em>\u5e38\u7528\u64cd\u4f5c\u793a\u610f\u56fe<\/em><\/strong><\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170959948-2117269594.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130170959948-2117269594.png\\\" \/><\/p>\n<p><strong><em>\u6587\u4ef6\u7684\u72b6\u6001\u53d8\u5316\u5468\u671f<\/em><\/strong><\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171009651-1964332055.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171009651-1964332055.png\\\" \/><\/p>\n<h3><span id=\\\"161\\\">1.6.1\u00a0\u521b\u5efa\u6587\u4ef6<\/span><\/h3>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# touch README\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n#\n# \u521d\u59cb\u63d0\u4ea4\n#\n# \u672a\u8ddf\u8e2a\u7684\u6587\u4ef6:\n#   \uff08\u4f7f\u7528 \\\"git add ...\\\" \u4ee5\u5305\u542b\u8981\u63d0\u4ea4\u7684\u5185\u5bb9\uff09\n#\n#    README\n\u63d0\u4ea4\u4e3a\u7a7a\uff0c\u4f46\u662f\u5b58\u5728\u5c1a\u672a\u8ddf\u8e2a\u7684\u6587\u4ef6\uff08\u4f7f\u7528 \\\"git add\\\" \u5efa\u7acb\u8ddf\u8e2a\uff09<\/pre>\n<\/div>\n<p>\u6dfb\u52a0\u6587\u4ef6\u8ddf\u8e2a<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git add .\/*\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n#\n# \u521d\u59cb\u63d0\u4ea4\n#\n# \u8981\u63d0\u4ea4\u7684\u53d8\u66f4\uff1a\n#   \uff08\u4f7f\u7528 \\\"git rm --cached ...\\\" \u64a4\u51fa\u6682\u5b58\u533a\uff09\n#\n#    \u65b0\u6587\u4ef6\uff1a    README\n#<\/pre>\n<\/div>\n<p>\u6587\u4ef6\u4f1a\u6dfb\u52a0\u5230.git\u7684\u9690\u85cf\u76ee\u5f55<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# tree  .git\/\n.git\/\n\u251c\u2500\u2500 branches\n\u251c\u2500\u2500 config\n\u251c\u2500\u2500 description\n\u251c\u2500\u2500 HEAD\n\u251c\u2500\u2500 hooks\n\u2502   \u251c\u2500\u2500 applypatch-msg.sample\n\u2502   \u251c\u2500\u2500 commit-msg.sample\n\u2502   \u251c\u2500\u2500 post-update.sample\n\u2502   \u251c\u2500\u2500 pre-applypatch.sample\n\u2502   \u251c\u2500\u2500 pre-commit.sample\n\u2502   \u251c\u2500\u2500 prepare-commit-msg.sample\n\u2502   \u251c\u2500\u2500 pre-push.sample\n\u2502   \u251c\u2500\u2500 pre-rebase.sample\n\u2502   \u2514\u2500\u2500 update.sample\n\u251c\u2500\u2500 index\n\u251c\u2500\u2500 info\n\u2502   \u2514\u2500\u2500 exclude\n\u251c\u2500\u2500 objects\n\u2502   \u251c\u2500\u2500 e6\n\u2502   \u2502   \u2514\u2500\u2500 9de29bb2d1d6434b8b29ae775ad8c2e48c5391\n\u2502   \u251c\u2500\u2500 info\n\u2502   \u2514\u2500\u2500 pack\n\u2514\u2500\u2500 refs\n    \u251c\u2500\u2500 heads\n    \u2514\u2500\u2500 tags<\/pre>\n<\/div>\n<p>\u7531\u5de5\u4f5c\u533a\u63d0\u4ea4\u5230\u672c\u5730\u4ed3\u5e93<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git commit  -m \\'first commit\\'\n[master\uff08\u6839\u63d0\u4ea4\uff09 bb963eb] first commit\n 1 file changed, 0 insertions(+), 0 deletions(-)\n create mode 100644 README<\/pre>\n<\/div>\n<p>\u67e5\u770bgit\u7684\u72b6\u6001<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n\u65e0\u6587\u4ef6\u8981\u63d0\u4ea4\uff0c\u5e72\u51c0\u7684\u5de5\u4f5c\u533a<\/pre>\n<\/div>\n<p>\u63d0\u4ea4\u540e\u7684git\u76ee\u5f55\u72b6\u6001<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# tree  .git\/\n.git\/\n\u251c\u2500\u2500 branches\n\u251c\u2500\u2500 COMMIT_EDITMSG\n\u251c\u2500\u2500 config\n\u251c\u2500\u2500 description\n\u251c\u2500\u2500 HEAD\n\u251c\u2500\u2500 hooks\n\u2502   \u251c\u2500\u2500 applypatch-msg.sample\n\u2502   \u251c\u2500\u2500 commit-msg.sample\n\u2502   \u251c\u2500\u2500 post-update.sample\n\u2502   \u251c\u2500\u2500 pre-applypatch.sample\n\u2502   \u251c\u2500\u2500 pre-commit.sample\n\u2502   \u251c\u2500\u2500 prepare-commit-msg.sample\n\u2502   \u251c\u2500\u2500 pre-push.sample\n\u2502   \u251c\u2500\u2500 pre-rebase.sample\n\u2502   \u2514\u2500\u2500 update.sample\n\u251c\u2500\u2500 index\n\u251c\u2500\u2500 info\n\u2502   \u2514\u2500\u2500 exclude\n\u251c\u2500\u2500 logs\n\u2502   \u251c\u2500\u2500 HEAD\n\u2502   \u2514\u2500\u2500 refs\n\u2502       \u2514\u2500\u2500 heads\n\u2502           \u2514\u2500\u2500 master\n\u251c\u2500\u2500 objects\n\u2502   \u251c\u2500\u2500 54\n\u2502   \u2502   \u2514\u2500\u2500 3b9bebdc6bd5c4b22136034a95dd097a57d3dd\n\u2502   \u251c\u2500\u2500 bb\n\u2502   \u2502   \u2514\u2500\u2500 963eb32ad93a72d9ce93e4bb55105087f1227d\n\u2502   \u251c\u2500\u2500 e6\n\u2502   \u2502   \u2514\u2500\u2500 9de29bb2d1d6434b8b29ae775ad8c2e48c5391\n\u2502   \u251c\u2500\u2500 info\n\u2502   \u2514\u2500\u2500 pack\n\u2514\u2500\u2500 refs\n    \u251c\u2500\u2500 heads\n    \u2502   \u2514\u2500\u2500 master\n    \u2514\u2500\u2500 tags<\/pre>\n<\/div>\n<h3><span id=\\\"162\\\">1.6.2\u00a0\u6dfb\u52a0\u65b0\u6587\u4ef6<\/span><\/h3>\n<div class=\\\"cnblogs_code\\\">\n<pre>git add  * \u6dfb\u52a0\u5230\u6682\u5b58\u533a\u57df\ngit commit  \u63d0\u4ea4git\u4ed3\u5e93 -m \u540e\u9762\u63a5\u4e0a\u6ce8\u91ca\u4fe1\u606f\uff0c\u5185\u5bb9\u5173\u4e8e\u672c\u6b21\u63d0\u4ea4\u7684\u8bf4\u660e\uff0c\u65b9\u4fbf\u81ea\u5df1\u6216\u4ed6\u4eba\u67e5\u770b<\/pre>\n<\/div>\n<p>\u4fee\u6539\u6216\u5220\u9664\u539f\u6709\u6587\u4ef6<br \/>\n\u5e38\u89c4\u65b9\u6cd5<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git add  *\ngit commit<\/pre>\n<\/div>\n<p>\u7b80\u4fbf\u65b9\u6cd5<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git commit -a  -m \\\"\u6ce8\u91ca\u4fe1\u606f\\\"<\/pre>\n<\/div>\n<p>-a\u00a0\u8868\u793a\u76f4\u63a5\u63d0\u4ea4<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are\nnot affected.<\/pre>\n<\/div>\n<h3><span id=\\\"163_git\\\">1.6.3\u00a0\u5220\u9664git\u5185\u7684\u6587\u4ef6<\/span><\/h3>\n<p><strong><em>\u547d\u4ee4\u8bf4\u660e\uff1a<\/em><\/strong><\/p>\n<div>\n\u2022\u00a0\u6ca1\u6709\u6dfb\u52a0\u5230\u6682\u5b58\u533a\u7684\u6570\u636e\u76f4\u63a5rm\u5220\u9664\u5373\u53ef\u3002<br \/>\n\u2022\u00a0\u5df2\u7ecf\u6dfb\u52a0\u5230\u6682\u5b58\u533a\u6570\u636e\uff1a<br \/>\ngit rm &#8211;cached database<br \/>\n#\u2192\u5c06\u6587\u4ef6\u4ecegit\u6682\u5b58\u533a\u57df\u7684\u8ffd\u8e2a\u5217\u8868\u79fb\u9664(\u5e76\u4e0d\u4f1a\u5220\u9664\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u5185\u7684\u6570\u636e\u6587\u4ef6)<br \/>\ngit rm -f database<br \/>\n#\u2192\u5c06\u6587\u4ef6\u6570\u636e\u4ecegit\u6682\u5b58\u533a\u548c\u5de5\u4f5c\u76ee\u5f55\u4e00\u8d77\u5220\u9664\n<\/div>\n<p><strong><em>\u547d\u4ee4\u5b9e\u8df5\uff1a<\/em><\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre># \u521b\u5efa\u65b0\u6587\u4ef6\n[root@gitlab git_data]# touch 123\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n# \u672a\u8ddf\u8e2a\u7684\u6587\u4ef6:\n#   \uff08\u4f7f\u7528 \\\"git add ...\\\" \u4ee5\u5305\u542b\u8981\u63d0\u4ea4\u7684\u5185\u5bb9\uff09\n#\n#    123\n\u63d0\u4ea4\u4e3a\u7a7a\uff0c\u4f46\u662f\u5b58\u5728\u5c1a\u672a\u8ddf\u8e2a\u7684\u6587\u4ef6\uff08\u4f7f\u7528 \\\"git add\\\" \u5efa\u7acb\u8ddf\u8e2a\uff09<\/pre>\n<\/div>\n<p>#\u00a0\u5c06\u6587\u4ef6\u6dfb\u52a0\u5230\u6682\u5b58\u533a\u57df<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git add 123\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n# \u8981\u63d0\u4ea4\u7684\u53d8\u66f4\uff1a\n#   \uff08\u4f7f\u7528 \\\"git reset HEAD ...\\\" \u64a4\u51fa\u6682\u5b58\u533a\uff09\n#\n#    \u65b0\u6587\u4ef6\uff1a    123<\/pre>\n<\/div>\n<p>#\u00a0\u00a0\u5220\u9664\u6587\u4ef6<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# rm 123 -f\n[root@gitlab git_data]# ls\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n# \u8981\u63d0\u4ea4\u7684\u53d8\u66f4\uff1a\n#   \uff08\u4f7f\u7528 \\\"git reset HEAD ...\\\" \u64a4\u51fa\u6682\u5b58\u533a\uff09\n#\n#    \u65b0\u6587\u4ef6\uff1a    123\n#\n# \u5c1a\u672a\u6682\u5b58\u4ee5\u5907\u63d0\u4ea4\u7684\u53d8\u66f4\uff1a\n#   \uff08\u4f7f\u7528 \\\"git add\/rm ...\\\" \u66f4\u65b0\u8981\u63d0\u4ea4\u7684\u5185\u5bb9\uff09\n#   \uff08\u4f7f\u7528 \\\"git checkout -- ...\\\" \u4e22\u5f03\u5de5\u4f5c\u533a\u7684\u6539\u52a8\uff09\n#\n#    \u5220\u9664\uff1a      123\n#<\/pre>\n<\/div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git reset HEAD  .\/*\n[root@gitlab git_data]# git status\n# \u4f4d\u4e8e\u5206\u652f master\n\u65e0\u6587\u4ef6\u8981\u63d0\u4ea4\uff0c\u5e72\u51c0\u7684\u5de5\u4f5c\u533a<\/pre>\n<\/div>\n<h3><span id=\\\"164\\\">1.6.4\u00a0\u91cd\u547d\u540d\u6682\u5b58\u533a\u6570\u636e<\/span><\/h3>\n<p>\u2022\u00a0\u6ca1\u6709\u6dfb\u52a0\u5230\u6682\u5b58\u533a\u7684\u6570\u636e\u76f4\u63a5mv\/rename\u6539\u540d\u5373\u53ef\u3002<br \/>\n\u2022\u00a0\u5df2\u7ecf\u6dfb\u52a0\u5230\u6682\u5b58\u533a\u6570\u636e\uff1a<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git mv README NOTICE<\/pre>\n<\/div>\n<h3><span id=\\\"165\\\">1.6.5\u00a0\u67e5\u770b\u5386\u53f2\u8bb0\u5f55<\/span><\/h3>\n<div>\n\u2022\u00a0git log\u00a0\u00a0 #\u2192\u67e5\u770b\u63d0\u4ea4\u5386\u53f2\u8bb0\u5f55<br \/>\n\u2022\u00a0git log -2\u00a0\u00a0 #\u2192\u67e5\u770b\u6700\u8fd1\u51e0\u6761\u8bb0\u5f55<br \/>\n\u2022\u00a0git log -p -1\u00a0 #\u2192-p\u663e\u793a\u6bcf\u6b21\u63d0\u4ea4\u7684\u5185\u5bb9\u5dee\u5f02,\u4f8b\u5982\u4ec5\u67e5\u770b\u6700\u8fd1\u4e00\u6b21\u5dee\u5f02<br \/>\n\u2022\u00a0git log &#8211;stat -2 #\u2192&#8211;stat\u7b80\u8981\u663e\u793a\u6570\u636e\u589e\u6539\u884c\u6570\uff0c\u8fd9\u6837\u80fd\u591f\u770b\u5230\u63d0\u4ea4\u4e2d\u4fee\u6539\u8fc7\u7684\u5185\u5bb9\uff0c\u5bf9\u6587\u4ef6\u6dfb\u52a0\u6216\u79fb\u52a8\u7684\u884c\u6570\uff0c\u5e76\u5728\u6700\u540e\u5217\u51fa\u6240\u6709\u589e\u51cf\u884c\u7684\u6982\u8981\u4fe1\u606f<br \/>\n\u2022\u00a0git log &#8211;pretty=oneline #\u2192&#8211;pretty\u6839\u636e\u4e0d\u540c\u7684\u683c\u5f0f\u5c55\u793a\u63d0\u4ea4\u7684\u5386\u53f2\u4fe1\u606f<br \/>\n\u2022\u00a0git log &#8211;pretty=fuller -2 #\u2192\u4ee5\u66f4\u8be6\u7ec6\u7684\u6a21\u5f0f\u8f93\u51fa\u63d0\u4ea4\u7684\u5386\u53f2\u8bb0\u5f55<br \/>\n\u2022\u00a0git log &#8211;pretty=fomat:\\&#8221;%h %cn\\&#8221;\u00a0 #\u2192\u67e5\u770b\u5f53\u524d\u6240\u6709\u63d0\u4ea4\u8bb0\u5f55\u7684\u7b80\u77edSHA-1\u54c8\u5e0c\u5b57\u4e32\u4e0e\u63d0\u4ea4\u7740\u7684\u59d3\u540d\u3002\n<\/div>\n<p>\u4f7f\u7528format\u53c2\u6570\u6765\u6307\u5b9a\u5177\u4f53\u7684\u8f93\u51fa\u683c\u5f0f<\/p>\n<div align=\\\"center\\\">\n<table border=\\\"1\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">\n<tbody>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>\u683c\u5f0f<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\n<p align=\\\"center\\\"><strong>\u8bf4\u660e<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%s<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u63d0\u4ea4\u8bf4\u660e\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%cd<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u63d0\u4ea4\u65e5\u671f\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%an<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u4f5c\u8005\u7684\u540d\u5b57\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%cn<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u63d0\u4ea4\u8005\u7684\u59d3\u540d\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%ce<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u63d0\u4ea4\u8005\u7684\u7535\u5b50\u90ae\u4ef6\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%H<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u63d0\u4ea4\u5bf9\u8c61\u7684\u5b8c\u6574SHA-1\u54c8\u5e0c\u5b57\u4e32\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%h<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u63d0\u4ea4\u5bf9\u8c61\u7684\u7b80\u77edSHA-1\u54c8\u5e0c\u5b57\u4e32\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%T<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u6811\u5bf9\u8c61\u7684\u5b8c\u6574SHA-1\u54c8\u5e0c\u5b57\u4e32\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%t<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u6811\u5bf9\u8c61\u7684\u7b80\u77edSHA-1\u54c8\u5e0c\u5b57\u4e32\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%P<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u7236\u5bf9\u8c61\u7684\u5b8c\u6574SHA-1\u54c8\u5e0c\u5b57\u4e32\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%p<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u7236\u5bf9\u8c61\u7684\u7b80\u77edSHA-1\u54c8\u5e0c\u5b57\u4e32\u3002<\/td>\n<\/tr>\n<tr>\n<td valign=\\\"top\\\" width=\\\"189\\\">\n<p align=\\\"center\\\"><strong>%ad<\/strong><\/p>\n<\/td>\n<td valign=\\\"top\\\" width=\\\"387\\\">\u4f5c\u8005\u7684\u4fee\u8ba2\u65f6\u95f4\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em>\u547d\u4ee4\u5b9e\u8df5<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git log\ncommit a409fc46f792228a8119705e9cc97c2a013534ab\nAuthor: clsn &lt;admin@znix.top&gt;\nDate:   Wed Nov 29 11:44:14 2017 +0800\n    test\ncommit bb963eb32ad93a72d9ce93e4bb55105087f1227d\nAuthor: clsn &lt;admin@znix.top&gt;\nDate:   Wed Nov 29 10:57:02 2017 +0800\n    first commit&lt;\/admin@znix.top&gt;&lt;\/admin@znix.top&gt;<\/pre>\n<\/div>\n<h3><span id=\\\"166\\\">1.6.6\u00a0\u8fd8\u539f\u5386\u53f2\u6570\u636e<\/span><\/h3>\n<p>Git\u670d\u52a1\u7a0b\u5e8f\u4e2d\u6709\u4e00\u4e2a\u53eb\u505aHEAD\u7684\u7248\u672c\u6307\u9488\uff0c\u5f53\u7528\u6237\u7533\u8bf7\u8fd8\u539f\u6570\u636e\u65f6\uff0c\u5176\u5b9e\u5c31\u662f\u5c06HEAD\u6307\u9488\u6307\u5411\u5230\u67d0\u4e2a\u7279\u5b9a\u7684\u63d0\u4ea4\u7248\u672c\uff0c\u4f46\u662f\u56e0\u4e3aGit\u662f\u5206\u5e03\u5f0f\u7248\u672c\u63a7\u5236\u7cfb\u7edf\uff0c\u4e3a\u4e86\u907f\u514d\u5386\u53f2\u8bb0\u5f55\u51b2\u7a81\uff0c\u6545\u4f7f\u7528\u4e86SHA-1\u8ba1\u7b97\u51fa\u5341\u516d\u8fdb\u5236\u7684\u54c8\u5e0c\u5b57\u4e32\u6765\u533a\u5206\u6bcf\u4e2a\u63d0\u4ea4\u7248\u672c\uff0c\u53e6\u5916\u9ed8\u8ba4\u7684HEAD\u7248\u672c\u6307\u9488\u4f1a\u6307\u5411\u5230\u6700\u8fd1\u7684\u4e00\u6b21\u63d0\u4ea4\u7248\u672c\u8bb0\u5f55\uff0c\u800c\u4e0a\u4e00\u4e2a\u63d0\u4ea4\u7248\u672c\u4f1a\u53ebHEAD^\uff0c\u4e0a\u4e0a\u4e00\u4e2a\u7248\u672c\u5219\u4f1a\u53eb\u505aHEAD^^\uff0c\u5f53\u7136\u4e00\u822c\u4f1a\u7528HEAD~5\u6765\u8868\u793a\u5f80\u4e0a\u6570\u7b2c\u4e94\u4e2a\u63d0\u4ea4\u7248\u672c\u3002<\/p>\n<div>\ngit reset &#8211;hard\u00a0\u00a0 hash<br \/>\ngit reset &#8211;hard HEAD^\u00a0 #\u2192\u8fd8\u539f\u5386\u53f2\u63d0\u4ea4\u7248\u672c\u4e0a\u4e00\u6b21<br \/>\ngit reset &#8211;hard 3de15d4 #\u2192\u627e\u5230\u5386\u53f2\u8fd8\u539f\u70b9\u7684SHA-1\u503c\u540e\uff0c\u5c31\u53ef\u4ee5\u8fd8\u539f(\u503c\u4e0d\u5199\u5168,\u7cfb\u7edf<br \/>\n\u4f1a\u81ea\u52a8\u5339\u914d)\n<\/div>\n<p><em>\u6d4b\u8bd5\u547d\u4ee4<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git log\ncommit a409fc46f792228a8119705e9cc97c2a013534ab\nAuthor: clsn &lt;13835544305@163.com&gt;\nDate:   Wed Nov 29 11:44:14 2017 +0800\n    test\ncommit bb963eb32ad93a72d9ce93e4bb55105087f1227d\nAuthor: clsn &lt;13835544305@163.com&gt;\nDate:   Wed Nov 29 10:57:02 2017 +0800\n    first commit<\/pre>\n<\/div>\n<p>\u8fd8\u539f\u6570\u636e<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git reset --hard  bb963\nHEAD \u73b0\u5728\u4f4d\u4e8e bb963eb first commit\n# \u67e5\u770b\u6570\u636e\n[root@gitlab git_data]# ls\nREADME<\/pre>\n<\/div>\n<h3><span id=\\\"167\\\">1.6.7\u00a0\u8fd8\u539f\u672a\u6765\u6570\u636e<\/span><\/h3>\n<p>\u4ec0\u4e48\u662f\u672a\u6765\u6570\u636e\uff1f\u5c31\u662f\u4f60\u8fd8\u539f\u5230\u5386\u53f2\u6570\u636e\u4e86\uff0c\u4f46\u662f\u4f60\u540e\u6094\u4e86\uff0c\u60f3\u64a4\u9500\u66f4\u6539\uff0c\u4f46\u662fgit log\u5df2\u7ecf\u627e\u4e0d\u5230\u8fd9\u4e2a\u7248\u672c\u4e86\u3002<\/p>\n<div>\ngit reflog #\u2192\u67e5\u770b\u672a\u6765\u5386\u53f2\u66f4\u65b0\u70b9\n<\/div>\n<p><em>\u6d4b\u8bd5\u547d\u4ee4<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git reflog\nbb963eb HEAD@{0}: reset: moving to bb963\na409fc4 HEAD@{1}: reset: moving to a409fc4\nbb963eb HEAD@{2}: reset: moving to bb963\na409fc4 HEAD@{3}: commit: test\nbb963eb HEAD@{4}: commit (initial): first commit\n[root@gitlab git_data]#<\/pre>\n<\/div>\n<h3><span id=\\\"168\\\">1.6.8\u00a0\u6807\u7b7e\u4f7f\u7528<\/span><\/h3>\n<div>\n\u524d\u9762\u56de\u6eda\u4f7f\u7528\u7684\u662f\u4e00\u4e32\u5b57\u7b26\u4e32\uff0c\u53c8\u957f\u53c8\u96be\u8bb0\u3002<br \/>\ngit tag v1.0\u00a0\u00a0 #\u2192\u5f53\u524d\u63d0\u4ea4\u5185\u5bb9\u6253\u4e00\u4e2a\u6807\u7b7e(\u65b9\u4fbf\u5feb\u901f\u56de\u6eda)\uff0c\u6bcf\u6b21\u63d0\u4ea4\u90fd\u53ef\u4ee5\u6253\u4e2atag\u3002<br \/>\ngit tag\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 #\u2192\u67e5\u770b\u5f53\u524d\u6240\u6709\u7684\u6807\u7b7e<br \/>\ngit show v1.0\u00a0\u00a0 #\u2192\u67e5\u770b\u5f53\u524d1.0\u7248\u672c\u7684\u8be6\u7ec6\u4fe1\u606f<br \/>\ngit tag v1.2 -m \\&#8221;version 1.2 release is test\\&#8221;\u00a0 #\u2192\u521b\u5efa\u5e26\u6709\u8bf4\u660e\u7684\u6807\u7b7e,-a\u6307\u5b9a\u6807\u7b7e\u540d\u5b57\uff0c-m\u6307\u5b9a\u8bf4\u660e\u6587\u5b57<br \/>\ngit tag -d v1.0\u00a0\u00a0 #\u2192\u6211\u4eec\u4e3a\u540c\u4e00\u4e2a\u63d0\u4ea4\u7248\u672c\u8bbe\u7f6e\u4e86\u4e24\u6b21\u6807\u7b7e,\u5220\u9664\u4e4b\u524d\u7684v1.0\n<\/div>\n<p><em>\u6d4b\u8bd5\u547d\u4ee4<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git reset --hard 0bdf2e7\nHEAD is now at 0bdf2e7 modified README file\n[root@gitlab git_data]# git reset --hard V1.0\nHEAD is now at a66370a add test dir\n[root@gitlab git_data]# git tag  v20171129\n[root@gitlab git_data]# git tag\nv20171129<\/pre>\n<\/div>\n<h3><span id=\\\"169\\\">1.6.9\u00a0\u5bf9\u6bd4\u6570\u636e<\/span><\/h3>\n<p>git diff\u53ef\u4ee5\u5bf9\u6bd4\u5f53\u524d\u6587\u4ef6\u4e0e\u4ed3\u5e93\u5df2\u4fdd\u5b58\u6587\u4ef6\u7684\u533a\u522b\uff0c\u77e5\u9053\u4e86\u5bf9README\u4f5c\u4e86\u4ec0\u4e48\u4fee\u6539<br \/>\n\u540e\uff0c\u518d\u628a\u5b83\u63d0\u4ea4\u5230\u4ed3\u5e93\u5c31\u653e\u2f3c\u591a\u4e86\u3002<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git diff README<\/pre>\n<\/div>\n<h2><span id=\\\"17\\\">1.7\u00a0\u5206\u652f\u7ed3\u6784<\/span><\/h2>\n<p>\u5728\u5b9e\u9645\u7684\u9879\u76ee\u5f00\u53d1\u4e2d\uff0c\u5c3d\u91cf\u4fdd\u8bc1master\u5206\u652f\u7a33\u5b9a\uff0c\u4ec5\u7528\u4e8e\u53d1\u5e03\u65b0\u7248\u672c\uff0c\u5e73\u65f6\u4e0d\u8981\u968f\u4fbf\u76f4\u63a5\u4fee\u6539\u91cc\u9762\u7684\u6570\u636e\u6587\u4ef6\u3002<br \/>\n\u90a3\u5728\u54ea\u5e72\u6d3b\u5462\uff1f\u5e72\u6d3b\u90fd\u5728dev\u5206\u652f\u4e0a\u3002\u6bcf\u4e2a\u4eba\u4ecedev\u5206\u652f\u521b\u5efa\u81ea\u5df1\u4e2a\u4eba\u5206\u652f\uff0c\u5f00\u53d1\u5b8c\u5408\u5e76\u5230dev\u5206\u652f\uff0c\u6700\u540edev\u5206\u652f\u5408\u5e76\u5230master\u5206\u652f\u3002\u6240\u4ee5\u56e2\u961f\u7684\u5408\u4f5c\u5206\u652f\u770b\u8d77\u6765\u4f1a\u50cf\u4e0b\u56fe\u90a3\u6837\u3002<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171522167-746209354.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171522167-746209354.png\\\" \/><\/p>\n<h3><span id=\\\"171\\\">1.7.1\u00a0\u5206\u652f\u5207\u6362<\/span><\/h3>\n<div class=\\\"cnblogs_code\\\">\n<pre>    [root@gitlab git_data]# git branch linux\n    [root@gitlab git_data]# git branch\n      linux\n    * master\n    [root@gitlab git_data]# git checkout linux\n    \u5207\u6362\u5230\u5206\u652f \\'linux\\'\n    [root@gitlab git_data]# git branch\n    * linux\n      master<\/pre>\n<\/div>\n<p><strong>\u5728linux<\/strong><strong>\u5206\u652f\u8fdb\u884c\u4fee\u6539<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>    [root@gitlab git_data]# cat README\n    [root@gitlab git_data]# echo \\\"2017\u5e7411\u670830\u65e5\\\" &gt;&gt; README\n    [root@gitlab git_data]# git add .\n    [root@gitlab git_data]# git commit -m \\\"2017\u5e7411\u670830\u65e509\u70b910\u5206\\\"\n    [linux 5a6c037] 2017\u5e7411\u670830\u65e509\u70b910\u5206\n     1 file changed, 1 insertion(+)\n    [root@gitlab git_data]# git status\n    # \u4f4d\u4e8e\u5206\u652f linux\n    \u65e0\u6587\u4ef6\u8981\u63d0\u4ea4\uff0c\u5e72\u51c0\u7684\u5de5\u4f5c\u533a<\/pre>\n<\/div>\n<p><strong>\u56de\u5230master<\/strong><strong>\u5206\u652f<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>    [root@gitlab git_data]# git checkout master\n    \u5207\u6362\u5230\u5206\u652f \\'master\\'\n    [root@gitlab git_data]# cat README\n    [root@gitlab git_data]# git log  -1\n    commit 7015bc7b316cc95e2dfe6c53e06e3900b2edf427\n    Author: clsn &lt;admin@znix.top&gt;\n    Date:   Wed Nov 29 19:30:57 2017 +0800\n        123&lt;\/admin@znix.top&gt;<\/pre>\n<\/div>\n<p><strong>\u5408\u5e76\u4ee3\u7801<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>    [root@gitlab git_data]# git merge linux\n    \u66f4\u65b0 7015bc7..5a6c037\n    Fast-forward\n     README | 1 +\n     1 file changed, 1 insertion(+)\n    [root@gitlab git_data]# git status\n    # \u4f4d\u4e8e\u5206\u652f master\n    \u65e0\u6587\u4ef6\u8981\u63d0\u4ea4\uff0c\u5e72\u51c0\u7684\u5de5\u4f5c\u533a\n    [root@gitlab git_data]# cat README\n    2017\u5e7411\u670830\u65e5<\/pre>\n<\/div>\n<h3><span id=\\\"172\\\">1.7.2\u00a0\u5408\u5e76\u5931\u8d25\u89e3\u51b3<\/span><\/h3>\n<p><em>\u6a21\u62df\u51b2\u7a81\uff0c\u5728\u6587\u4ef6\u7684\u540c\u4e00\u884c\u505a\u4e0d\u540c\u4fee\u6539<\/em><br \/>\n<strong>\u5728master\u00a0<\/strong><strong>\u5206\u652f\u8fdb\u884c\u4fee\u6539<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# cat README\n2017\u5e7411\u670830\u65e5\n[root@gitlab git_data]# echo  \\\"clsn in master\\\"&gt;&gt; README\n[root@gitlab git_data]# git commit -a -m \\\"clsn 2017\u5e7411\u670830\u65e5 09\u70b920\u5206 \\\"\n[master 7ab71d4] clsn 2017\u5e7411\u670830\u65e5 09\u70b920\u5206\n 1 file changed, 1 insertion(+)<\/pre>\n<\/div>\n<p><strong>\u5207\u6362\u5230linux<\/strong><strong>\u5206\u652f<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git checkout linux\n\u5207\u6362\u5230\u5206\u652f \\'linux\\'\n[root@gitlab git_data]# cat README\n2017\u5e7411\u670830\u65e5\n[root@gitlab git_data]# echo \\\"clsn in linux\\\" &gt;&gt; README\n[root@gitlab git_data]# git commit -a -m \\\"2017\u5e7411\u670830\u65e5 03\\\"\n[linux 20f1a13] 2017\u5e7411\u670830\u65e5 03\n 1 file changed, 1 insertion(+)<\/pre>\n<\/div>\n<p><strong>\u56de\u5230master<\/strong><strong>\u5206\u533a\uff0c\u8fdb\u884c\u5408\u5e76\uff0c\u51fa\u73b0\u51b2\u7a81<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git checkout master\n\u5207\u6362\u5230\u5206\u652f \\'master\\'\n[root@gitlab git_data]# git merge linux\n\u81ea\u52a8\u5408\u5e76 README\n\u51b2\u7a81\uff08\u5185\u5bb9\uff09\uff1a\u5408\u5e76\u51b2\u7a81\u4e8e README\n\u81ea\u52a8\u5408\u5e76\u5931\u8d25\uff0c\u4fee\u6b63\u51b2\u7a81\u7136\u540e\u63d0\u4ea4\u4fee\u6b63\u7684\u7ed3\u679c\u3002<\/pre>\n<\/div>\n<p><strong>\u89e3\u51b3\u51b2\u7a81<\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# vim README\n2017\u5e7411\u670830\u65e5\nclsn in master\nclsn in linux<\/pre>\n<\/div>\n<p><em>#\u00a0<\/em><em>\u624b\u5de5\u89e3\u51b3\u51b2\u7a81<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab git_data]# git commit -a -m \\\"2017\u5e7411\u670830\u65e5 03\\\"\n[master b6a097f] 2017\u5e7411\u670830\u65e5 03<\/pre>\n<\/div>\n<h3><span id=\\\"173\\\">1.7.3\u00a0\u5220\u9664\u5206\u652f<\/span><\/h3>\n<p>\u56e0\u4e3a\u4e4b\u524d\u5df2\u7ecf\u5408\u5e76\u4e86linux\u5206\u652f\uff0c\u6240\u4ee5\u73b0\u5728\u770b\u5230\u5b83\u5728\u5217\u8868\u4e2d\u3002\u00a0\u5728\u8fd9\u4e2a\u5217\u8868\u4e2d\u5206\u652f\u540d\u5b57\u524d\u6ca1\u6709\u00a0*\u00a0\u53f7\u7684\u5206\u652f\u901a\u5e38\u53ef\u4ee5\u4f7f\u7528\u00a0git branch -d\u00a0\u5220\u9664\u6389\uff1b\u4f60\u5df2\u7ecf\u5c06\u5b83\u4eec\u7684\u5de5\u4f5c\u6574\u5408\u5230\u4e86\u53e6\u4e00\u4e2a\u5206\u652f\uff0c\u6240\u4ee5\u5e76\u4e0d\u4f1a\u5931\u53bb\u4efb\u4f55\u4e1c\u897f\u3002<br \/>\n\u67e5\u770b\u6240\u6709\u5305\u542b\u672a\u5408\u5e76\u5de5\u4f5c\u7684\u5206\u652f\uff0c\u53ef\u4ee5\u8fd0\u884c<em>\u00a0git branch &#8211;no-merged<\/em><em>\uff1a<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git branch --no-merged\n  testing<\/pre>\n<\/div>\n<p>\u8fd9\u91cc\u663e\u793a\u4e86\u5176\u4ed6\u5206\u652f\u3002\u00a0\u56e0\u4e3a\u5b83\u5305\u542b\u4e86\u8fd8\u672a\u5408\u5e76\u7684\u5de5\u4f5c\uff0c\u5c1d\u8bd5\u4f7f\u7528\u00a0git branch -d\u00a0\u547d\u4ee4\u5220\u9664\u5b83\u65f6\u4f1a\u5931\u8d25\uff1a<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>git branch -d testing\nerror: The branch \\'testing\\' is not fully merged.\nIf you are sure you want to delete it, run \\'git branch -D testing\\'.<\/pre>\n<\/div>\n<p>\u5982\u679c\u771f\u7684\u60f3\u8981\u5220\u9664\u5206\u652f\u5e76\u4e22\u6389\u90a3\u4e9b\u5de5\u4f5c\uff0c\u5982\u540c\u5e2e\u52a9\u4fe1\u606f\u91cc\u6240\u6307\u51fa\u7684\uff0c\u53ef\u4ee5\u4f7f\u7528\u00a0<strong>-D<\/strong>\u00a0\u9009\u9879\u5f3a\u5236\u5220\u9664\u5b83\u3002<\/p>\n<h2><span id=\\\"18_windwosGit\\\">1.8 windwos\u4e0aGit\u7684\u4f7f\u7528<\/span><\/h2>\n<p>windows\u00a0\u4e0agit\u8f6f\u4ef6\u7f51\u7ad9\u00a0<em>https:\/\/git-for-windows.github.io<\/em><\/p>\n<div>\n\u00a0\u00a0\u00a0\u00a0\u8f6f\u4ef6\u4e0b\u8f7d\u5730\u5740\uff1ahttps:\/\/github.com\/git-for-windows\/git\/releases\/download\/v2.15.1.windows.2\/Git-2.15.1.2-64-bit.exe\n<\/div>\n<p>\u8f6f\u4ef6\u5b89\u88c5\u9ed8\u8ba4\u5373\u53ef\u3002<\/p>\n<h3><span id=\\\"181\\\">1.8.1\u00a0\u8f6f\u4ef6\u4f7f\u7528<\/span><\/h3>\n<p>\u521b\u5efa\u65b0\u7684\u4ed3\u5e93<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171826511-65282446.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171826511-65282446.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5b9a\u4e49\u4ed3\u5e93\u7684\u8def\u5f84<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171836073-38741033.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171836073-38741033.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6dfb\u52a0\u7528\u6237\u4fe1\u606f\uff08\u5728\u00a0git bash\u4e2d\uff09<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>default@Hzs-Desktop MINGW64 \/i\/git_data (master)\n$ git config  --global user.email \\\"admin@znix.top\\\"\ndefault@Hzs-Desktop MINGW64 \/i\/git_data (master)\n$ git config  --global user.name \\\"clsn\\\"<\/pre>\n<\/div>\n<p>\u5728git Gui\u00a0\u4e2d\u6dfb\u52a0\u7528\u6237\u4fe1\u606f\uff0c\u6dfb\u52a0\u4e00\u6b21\u5c31\u53ef<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171858448-43416173.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171858448-43416173.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5728\u9875\u9762\u4e2d\u5c06\u6570\u636e\u914d\u7f6e\u597d\u5373\u53ef\u4f7f\u7528<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171907558-1392348319.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171907558-1392348319.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u67e5\u770b\u5386\u53f2\u6570\u636e<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171916026-822562163.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130171916026-822562163.png\\\" \/><\/p>\n<h2><span id=\\\"19_gitlab\\\">1.9\u00a0gitlab\u7684\u4f7f\u7528<\/span><\/h2>\n<p>\u524d\u9762\u6211\u4eec\u5df2\u7ecf\u77e5\u9053Git\u4eba\u4eba\u90fd\u662f\u4e2d\u5fc3\uff0c\u90a3\u4ed6\u4eec\u600e\u4e48\u4ea4\u4e92\u6570\u636e\u5462\uff1f<br \/>\n\u2022\u00a0\u4f7f\u7528<strong><em>GitHub<\/em><\/strong>\u6216\u8005<strong><em>\u7801\u4e91<\/em><\/strong>\u7b49\u516c\u5171\u4ee3\u7801\u4ed3\u5e93<br \/>\n\u2022\u00a0\u4f7f\u7528GitLab\u79c1\u6709\u4ed3\u5e93<\/p>\n<h3><span id=\\\"191_gitlab\\\">1.9.1\u00a0\u5b89\u88c5\u914d\u7f6egitlab<\/span><\/h3>\n<div>\n\u5b98\u65b9\u5b89\u88c5\u6587\u6863\u00a0\u00a0\u00a0https:\/\/about.gitlab.com\/installation\/<br \/>\n\u56fd\u5185\u8f6f\u4ef6\u955c\u50cf\u7ad9\u00a0https:\/\/mirrors.tuna.tsinghua.edu.cn\/gitlab-ce\/yum\/\n<\/div>\n<p><strong><em>\u5b89\u88c5<\/em><\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# yum localinstall gitlab-ce-9.1.4-ce.0.el7.x86_64.rpm<\/pre>\n<\/div>\n<p>\u521d\u59cb\u5316<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# gitlab-ctl reconfigure<\/pre>\n<\/div>\n<p>\u72b6\u6001<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]#  gitlab-ctl status\nrun: gitaly: (pid 4491) 48s; run: log: (pid 4087) 279s\nrun: gitlab-monitor: (pid 4539) 44s; run: log: (pid 4251) 207s\nrun: gitlab-workhorse: (pid 4501) 47s; run: log: (pid 4099) 273s\nrun: logrotate: (pid 4125) 265s; run: log: (pid 4124) 265s\nrun: nginx: (pid 4112) 271s; run: log: (pid 4111) 271s\nrun: node-exporter: (pid 4175) 243s; run: log: (pid 4174) 243s\nrun: postgres-exporter: (pid 4528) 45s; run: log: (pid 4223) 219s\nrun: postgresql: (pid 3933) 343s; run: log: (pid 3932) 343s\nrun: prometheus: (pid 4514) 46s; run: log: (pid 4156) 259s\nrun: redis: (pid 3876) 355s; run: log: (pid 3875) 355s\nrun: redis-exporter: (pid 4186) 237s; run: log: (pid 4185) 237s\nrun: sidekiq: (pid 4078) 281s; run: log: (pid 4077) 281s\nrun: unicorn: (pid 4047) 287s; run: log: (pid 4046) 287s<\/pre>\n<\/div>\n<p>\u68c0\u67e5\u7aef\u53e3<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# netstat -lntup|grep 80\ntcp        0      0 127.0.0.1:8080      0.0.0.0:*    LISTEN     4073\/unicorn master\ntcp        0      0 0.0.0.0:80      0.0.0.0:*         LISTEN      4112\/nginx: master\ntcp        0      0 0.0.0.0:8060       0.0.0.0:*      LISTEN      4112\/nginx: master<\/pre>\n<\/div>\n<h3><span id=\\\"192_web\\\">1.9.2\u00a0\u4f7f\u7528\u6d4f\u89c8\u5668\u8bbf\u95ee\uff0c\u8fdb\u884cweb\u754c\u9762\u64cd\u4f5c<\/span><\/h3>\n<p>\u7b2c\u4e00\u6b21\u8bbf\u95ee\uff0c\u521b\u5efa\u5bc6\u7801<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172003370-795962407.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172003370-795962407.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u8fdb\u884c\u767b\u9646\uff0c\u7528\u6237\u540d\u4e3aroot\uff0c\u5bc6\u7801\u4e3a12345678<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172009104-1047161099.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172009104-1047161099.png\\\" \/><\/p>\n<p>\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u9879\u76ee<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172017526-15521339.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172017526-15521339.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5b9a\u4e49\u9879\u76ee\u7684\u540d\u79f0<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172024214-328349596.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172024214-328349596.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u521b\u5efa\u5b8c\u6210\u540e\u4f1a\u63d0\u793a\u6ca1\u6709\u6dfb\u52a0ssh\u5bc6\u94a5<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172030761-29430481.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172030761-29430481.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5728\u670d\u52a1\u5668\u4e0a\u521b\u5efassh\u5bc6\u94a5\u00a0\u4f7f\u7528ssh-ketgen\u00a0\u547d\u4ee4<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# ssh-keygen\nGenerating public\/private rsa key pair.\nEnter file in which to save the key (\/root\/.ssh\/id_rsa):\nCreated directory \\'\/root\/.ssh\\'.\nEnter passphrase (empty for no passphrase):\nEnter same passphrase again:\nYour identification has been saved in \/root\/.ssh\/id_rsa.\nYour public key has been saved in \/root\/.ssh\/id_rsa.pub.\nThe key fingerprint is:\nSHA256:n\/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU root@gitlab\nThe key\\'s randomart image is:\n+---[RSA 2048]----+\n|       o++o+     |\n|      ..+o+ .    |\n|       ==++o.. o |\n|     ..o==o=..+..|\n|      o.So+.++o  |\n|       o oo*.o.. |\n|        .o+   E .|\n|         ..o . . |\n|          ooo    |\n+----[SHA256]-----+<\/pre>\n<\/div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab .ssh]# cat id_rsa.pub\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSVdBypha\/ALMmvIiZGXxYGz7FJ5TC+hYWo7QGBJ+J6JVinp9yH851fwxln5TWGBrtEousoVHXTTJfFRy8LV+Ho7OfaksYt+5TPxEjf5XX53Z3ZX70PYH3DQFmgzl0QpWw1PYIjrD7kBeLhUg+R\/ZePS+HzPvbRCb6gOlkdx46vX4Olr7YbAO5lzAarhaZcE2Q702kPXGeuZbR7KcwVhtoiueyHwyj94bccMfKq7qSskXGbpWuCwcaKQ6uqGap1rP5Viqqv0xeO7Vq0dIZ\/YnPL2vPDUvNa36nHosiZGkn4thpPh63KjXaFIfKOuPemLzvDZY0A+88P8gwmAYiPoxp root@gitlab<\/pre>\n<\/div>\n<p>\u5c06\u5bc6\u94a5\u6dfb\u52a0\u5230web\u754c\u9762\u7684\u7528\u6237\u4e2d<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172111261-1864984064.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172111261-1864984064.png\\\" \/><\/p>\n<p><strong><em>gitlab<\/em><\/strong><strong><em>\u81ea\u5e26\u7684\u547d\u4ee4\u96c6<\/em><\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>Command line instructions\n<em><strong>Git <\/strong><\/em><em><strong>global<\/strong><\/em><em><strong> setup<\/strong><\/em>\ngit config --global user.name \\\"Administrator\\\"\ngit config --global user.email \\\"admin@example.com\\\"<em><strong>\nCreate a new repository<\/strong><\/em>\ngit clone git@gitlab.example.com:root\/clsn.git\ncd clsn\ntouch README.md\ngit add README.md\ngit commit -m \\\"add README\\\"\ngit push -u origin master\n<em><strong>Existing folder<\/strong><\/em>\ncd existing_folder\ngit init\ngit remote add origin git@gitlab.example.com:root\/clsn.git\ngit add .\ngit commit -m \\\"Initial commit\\\"\ngit push -u origin master\n<em><strong>Existing Git repository<\/strong><\/em>\ncd existing_repo\ngit remote rename origin old-origin\ngit remote add origin git@gitlab.example.com:root\/clsn.git\ngit push -u origin --all\ngit push -u origin --tags<\/pre>\n<\/div>\n<p><strong><em>\u521b\u5efa\u884c\u7684git<\/em><\/strong><strong><em>\u4ed3\u5e93<\/em><\/strong><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# git clone git@gitlab:root\/Test1.git\n\u6b63\u514b\u9686\u5230 \\'Test1\\'...\nThe authenticity of host \\'gitlab (10.0.0.63)\\' can\\'t be established.\nECDSA key fingerprint is SHA256:yOrzs0W+R\/\/s8VDEN9nko6r6wW+8gwJl3Ut7ac0i5SY.\nECDSA key fingerprint is MD5:21:33:dd:4d:01:00:eb:71:a4:4e:2d:2b:bf:37:48:ed.\nAre you sure you want to continue connecting (yes\/no)? yes\nWarning: Permanently added \\'gitlab\\' (ECDSA) to the list of known hosts.\nwarning: \u60a8\u4f3c\u4e4e\u514b\u9686\u4e86\u4e00\u4e2a\u7a7a\u7248\u672c\u5e93\u3002<\/pre>\n<\/div>\n<p>\u521b\u5efa\u6587\u4ef6\u5e76\u63a8\u5230\u8fdc\u7aefgit\u4ed3\u5e93<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab Test1]# echo \\\"clsn\\\" &gt;&gt; clsn\n[root@gitlab Test1]# git push -u origin master\n\u5206\u652f master \u8bbe\u7f6e\u4e3a\u8ddf\u8e2a\u6765\u81ea origin \u7684\u8fdc\u7a0b\u5206\u652f master\u3002\nEverything up-to-date<\/pre>\n<\/div>\n<p>\u63a8\u9001\u5b8c\u6210\u540e\u80fd\u591f\u5728web\u754c\u9762\u4e2d\u67e5\u770b<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172239792-1540256709.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172239792-1540256709.png\\\" \/><\/p>\n<div>\n# md\u00a0\u8bed\u6cd5\u7684\u4f7f\u7528\u65b9\u6cd5<br \/>\n<a href=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/inc\/go.php?url=http:\/\/www.zyops.com\/markdown-syntax\\\">http:\/\/www.zyops.com\/markdown-syntax<i class=\\\"be be-anchor\\\"><\/i><\/a>\n<\/div>\n<p><strong><em>\u81f3\u6b64gitlab<\/em><\/strong><strong><em>\u7684\u4f7f\u7528\u7ed3\u675f\u4e86<\/em><\/strong><\/p>\n<h2><span id=\\\"110_GitHub\\\">1.10 GitHub\u6258\u7ba1\u670d\u52a1<\/span><\/h2>\n<p>Github\u987e\u540d\u601d\u4e49\u662f\u4e00\u4e2aGit\u7248\u672c\u5e93\u7684\u6258\u7ba1\u670d\u52a1\uff0c\u662f\u76ee\u524d\u5168\u7403\u6700\u5927\u7684\u8f6f\u4ef6\u4ed3\u5e93\uff0c\u62e5\u6709\u4e0a\u767e\u4e07\u7684\u5f00\u53d1\u8005\u7528\u6237\uff0c\u4e5f\u662f\u8f6f\u4ef6\u5f00\u53d1\u548c\u5bfb\u627e\u8d44\u6e90\u7684\u6700\u4f73\u9014\u5f84\uff0cGithub\u4e0d\u4ec5\u53ef\u4ee5\u6258\u7ba1\u5404\u79cdGit\u7248\u672c\u4ed3\u5e93\uff0c\u8fd8\u62e5\u6709\u4e86\u66f4\u7f8e\u89c2\u7684Web\u754c\u9762\uff0c\u60a8\u7684\u4ee3\u7801\u6587\u4ef6\u53ef\u4ee5\u88ab\u4efb\u4f55\u4eba\u514b\u9686\uff0c\u4f7f\u5f97\u5f00\u53d1\u8005\u4e3a\u5f00\u6e90\u9879\u8d21\u732e\u4ee3\u7801\u53d8\u5f97\u66f4\u52a0\u5bb9\u6613\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u4ed8\u8d39\u8d2d\u4e70\u79c1\u6709\u5e93\uff0c\u8fd9\u6837\u9ad8\u6027\u4ef7\u6bd4\u7684\u79c1\u6709\u5e93\u771f\u7684\u662f\u5e2e\u52a9\u5230\u4e86\u5f88\u591a\u56e2\u961f\u548c\u4f01\u4e1a\u3002<\/p>\n<h3><span id=\\\"1101_GitHub\\\">1.10.1\u00a0\u6ce8\u518cGitHub<\/span><\/h3>\n<p>\u6d4f\u89c8\u5668\u8bbf\u95eegithub\u5b98\u7f51\u00a0\uff1a\u00a0<a href=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/inc\/go.php?url=https:\/\/github.com\/\\\">https:\/\/github.com\/<i class=\\\"be be-anchor\\\"><\/i><\/a>\u00a0\uff0c\u70b9\u51fb<strong>Sign up\u00a0<\/strong>\u8fdb\u884c\u6ce8\u518c<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172252558-286760021.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172252558-286760021.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u586b\u5199\u4e2a\u4eba\u4fe1\u606f\uff0c\u8fdb\u884c\u6ce8\u518c<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172258245-1338891185.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172258245-1338891185.png\\\" \/><\/p>\n<p>\u9009\u62e9\u4ed3\u5e93\u7c7b\u578b,\u9ed8\u8ba4\u514d\u8d39,\u70b9\u51fb\u5e95\u4e0bContinue\u6ce8\u518c<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172304542-1447880412.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172304542-1447880412.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u63cf\u8ff0\u4e00\u4e0b\u4f60\u81ea\u5df1\uff0c\u5f53\u7136\uff0c\u8fd9\u4e00\u6b65\u53ef\u4ee5\u8df3\u8fc7<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172317448-490179651.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172317448-490179651.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u7528\u6237\u521b\u5efa\u5b8c\u6210\uff0c\u53ef\u4ee5\u521b\u5efa\u65b0\u7684\u9879\u76ee<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172323761-1590278362.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172323761-1590278362.png\\\" \/><\/p>\n<p>\u6ce8\u610f\uff1a\u521b\u5efa\u65b0\u7684\u9879\u76ee\u4e4b\u524d\u8981\u73b0\u9a8c\u8bc1\u90ae\u7bb1<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172329339-889835729.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172329339-889835729.png\\\" \/><\/p>\n<h3><span id=\\\"1102\\\">1.10.2\u00a0\u6dfb\u52a0\u5bc6\u94a5<\/span><\/h3>\n<p>\u5728github\u4e0a\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684ssh\u5bc6\u94a5<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172539964-1266551504.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172539964-1266551504.png\\\" \/><\/p>\n<p>\u83b7\u53d6\u4e3b\u673a\uff08linux\uff09\u4e0a\u7684\u5bc6\u94a5<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# ssh-keygen\nGenerating public\/private rsa key pair.\nEnter file in which to save the key (\/root\/.ssh\/id_rsa):\nCreated directory \\'\/root\/.ssh\\'.\nEnter passphrase (empty for no passphrase):\nEnter same passphrase again:\nYour identification has been saved in \/root\/.ssh\/id_rsa.\nYour public key has been saved in \/root\/.ssh\/id_rsa.pub.\nThe key fingerprint is:\nSHA256:n\/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU root@gitlab\nThe key\\'s randomart image is:\n+---[RSA 2048]----+\n|       o++o+     |\n|      ..+o+ .    |\n|       ==++o.. o |\n|     ..o==o=..+..|\n|      o.So+.++o  |\n|       o oo*.o.. |\n|        .o+   E .|\n|         ..o . . |\n|          ooo    |\n+----[SHA256]-----+<\/pre>\n<\/div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# cat .ssh\/id_rsa.pub\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmv4aEEEpbUyzv1r6SN0JqOfeyQ7sZZbXxWFv4xflIJeK\/rl8cF7UYCzjLEvwJlrkIjKSs5uW1x0zWEcZFiv5tGCiO7DeMR6pKUAn7NzNjKiCcElCXiqHVew84iTbxX4MWKlbFoJYO9\/wQ1NlrQfqcSgZwJTLKBMVoMXvTWPPGXf6AwdSp68guFwwGDIV8BiHZiy61bKiWYSVKSDP47Y7VUV\/bdwGaxG7tAfalWVpe6xXXRtsj58sENyIWbRI7\/9XWqs+eV+CgI74YjOanMvHnHFlfg0tb+MewRb4tFGVmroFBRsvfI3Sl2fez2zHG0qh3f34\/0KF1kitlWkgcBJqN root@gitlab<\/pre>\n<\/div>\n<p>windwos\u4e0a\u83b7\u5f97\u5bc6\u94a5\u7684\u65b9\u6cd5\uff08\u9700\u8981\u5b89\u88c5git for windows\uff09<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>default@Hzs-Desktop MINGW64 \/i\/Desktop\n$ ssh-keygen.exe\nGenerating public\/private rsa key pair.\nEnter file in which to save the key (\/c\/Users\/default.DESKTOP-U9D5JP4\/.ssh\/id_rs                                                                                                                                  a):\nCreated directory \\'\/c\/Users\/default.DESKTOP-U9D5JP4\/.ssh\\'.\nEnter passphrase (empty for no passphrase):\nEnter same passphrase again:\nYour identification has been saved in \/c\/Users\/default.DESKTOP-U9D5JP4\/.ssh\/id_r                                                                                                                                  sa.\nYour public key has been saved in \/c\/Users\/default.DESKTOP-U9D5JP4\/.ssh\/id_rsa.p                                                                                                                                  ub.\nThe key fingerprint is:\nSHA256:aqnHq\/xNn159jBX4o2L2ZJdtiwu4ietvKRT2fL9igZo default@Hzs-Desktop\nThe key\\'s randomart image is:\n+---[RSA 2048]----+\n|                 |\n|              .  |\n|             . . |\n|       o      . .|\n|      . S .    o.|\n|       + +.o ..++|\n|     .= +.o=++oo=|\n|   . ooE.+==*.oo.|\n|    +++=*== .=o. |\n+----[SHA256]-----+\ndefault@Hzs-Desktop MINGW64 \/i\/Desktop\n$\ndefault@Hzs-Desktop MINGW64 \/i\/Desktop\n$ cat \/c\/Users\/default.DESKTOP-U9D5JP4\/.ssh\/id_rsa.pub\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC15+1oQBzvgzQP3p0Lb9FsTKFfIIws9WxGBVl2B9d2                                                                                                                                  qT2eKFgXoEDNCF\/OrhhXvbMDhORxXHf9RG0Aqj+\/vJddbaQpCawHhP6VUG1X885xhY4OohDOkFQiWD1s                                                                                                                                  DCMkX7OHNW5ake6P8AdNwI6eSpKYKYCxRMGkRiBa1KDRtG8CvsG8VN0iTSW0UZ3s4Ps+S31pBYlNjOMv                                                                                                                                  Lp0HRAMVhYimLLi0Wz2mBffPOeNjPX1FfJdr+hO7TIRNdyAEGIhSbckkAnVEIASAhI0Re\/19v1RnSkk2                                                                                                                                  VtBvc5rVeGxFMNuEIl9WDMSTcedhEGXyRlW2N9TtXlvF1eNflzUg2BtCaCFZ default@Hzs-Desktop<\/pre>\n<\/div>\n<p><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172336636-985818438.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172336636-985818438.png\\\" \/><br \/>\n\u5bc6\u94a5\u521b\u5efa\u5b8c\u6210\u540e\u8fdb\u884c\u6dfb\u52a0<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172742761-924253187.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172742761-924253187.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5bc6\u94a5\u6dfb\u52a0\u6210\u529f<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172749558-1088172890.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172749558-1088172890.png\\\" \/><\/p>\n<h3><span id=\\\"1103\\\">1.10.3\u00a0\u521b\u5efa\u4ed3\u5e93<\/span><\/h3>\n<p>\u51c6\u5907\u5de5\u4f5c\u5df2\u7ecf\u5b8c\u6bd5,\u53f3\u4e0a\u89d2\u70b9\u51fb\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u4ed3\u5e93<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172756151-1248422868.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172756151-1248422868.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u521b\u5efa\u4ed3\u5e93\uff0c\u8f93\u5165\u4e2a\u4eba\u4fe1\u606f<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172806573-563002521.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172806573-563002521.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6839\u636e\u4e0a\u9762\u7684\u63d0\u793a\uff0c\u521b\u5efa\u4e00\u4e2a\u4ee3\u7801\u4ed3\u5e93<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172813573-635220233.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172813573-635220233.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5728\u4e2a\u4eba\u4e3b\u673a\u4e0a\u8fdb\u884c\u63a8\u9001\u6d4b\u8bd5<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab ~]# mkdir -p clsn\n[root@gitlab ~]# cd clsn\/\n[root@gitlab clsn]# echo \\\"# test\\\" &gt;&gt; README.md\n[root@gitlab clsn]# git init\n\u521d\u59cb\u5316\u7a7a\u7684 Git \u7248\u672c\u5e93\u4e8e \/root\/clsn\/.git\/\n[root@gitlab clsn]# git add README.md\n[root@gitlab clsn]# git commit -m \\\"first commit\\\"\n[master\uff08\u6839\u63d0\u4ea4\uff09 089ae47] first commit\n 1 file changed, 1 insertion(+)\n create mode 100644 README.md\n[root@gitlab clsn]# git remote add origin git@github.com:clsn-git\/test.git\n[root@gitlab clsn]# git push -u origin master\nThe authenticity of host \\'github.com (192.30.255.113)\\' can\\'t be established.\nRSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.\nRSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.\nAre you sure you want to continue connecting (yes\/no)? yes\nWarning: Permanently added \\'github.com,192.30.255.113\\' (RSA) to the list of known hosts.\nCounting objects: 3, done.\nWriting objects: 100% (3\/3), 212 bytes | 0 bytes\/s, done.\nTotal 3 (delta 0), reused 0 (delta 0)\nTo git@github.com:clsn-git\/test.git\n * [new branch]      master -&gt; master\n\u5206\u652f master \u8bbe\u7f6e\u4e3a\u8ddf\u8e2a\u6765\u81ea origin \u7684\u8fdc\u7a0b\u5206\u652f master\u3002<\/pre>\n<\/div>\n<p>\u63a8\u9001\u5b8c\u6210\uff0c\u5237\u65b0\u754c\u9762\u5c31\u53ef\u4ee5\u53d1\u73b0\uff0c\u63a8\u9001\u4e0a\u53bb\u7684README.md\u6587\u4ef6<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172835651-1162220378.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172835651-1162220378.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u521b\u5efa\u65b0\u6587\u4ef6\uff0c\u8fdb\u884c\u62c9\u53d6\u6d4b\u8bd5<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172843276-848969039.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172843276-848969039.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u521b\u5efa\u597d\u540e\u70b9\u51fb\u4e0b\u9762\u7684commit\u5373\u53ef<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172849808-1420080040.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172849808-1420080040.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 github\u6dfb\u52a0\u6210\u529f\uff0c\u8fdb\u884c\u62c9\u53d6\u6d4b\u8bd5<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172855542-1363801232.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172855542-1363801232.png\\\" \/><\/p>\n<h3><span id=\\\"1104\\\">1.10.4\u00a0\u62c9\u53d6\u6587\u4ef6\u6d4b\u8bd5<\/span><\/h3>\n<p>\u67e5\u770b\u76ee\u5f55\u5185\u5bb9<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab clsn]# ls\nREADME.md<\/pre>\n<\/div>\n<p>\u8fdb\u884c\u62c9\u53d6<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab clsn]# git pull\nremote: Counting objects: 3, done.\nremote: Compressing objects: 100% (3\/3), done.\nUnpacking objects: 100% (3\/3), done.\nremote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0\n\u6765\u81ea github.com:clsn-git\/test\n   089ae47..a16be65  master     -&gt; origin\/master\n\u66f4\u65b0 089ae47..a16be65\nFast-forward\n clsn.txt | 3 +++\n 1 file changed, 3 insertions(+)\n create mode 100644 clsn.txt<\/pre>\n<\/div>\n<p><em>\u68c0\u67e5\u6587\u4ef6<\/em><\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@gitlab clsn]# ls\nclsn.txt  README.md\n[root@gitlab clsn]# cat clsn.txt\n# \u8fd9\u662f\u60e8\u7eff\u5c11\u5e74\u7684\u6587\u6863\n# clsn blog  : http:\/\/blog.znix.top\n# \u60e8\u7eff\u5c11\u5e74\u7684\u535a\u5ba2\u4e3a \uff1a http:\/\/blog.znix.top<\/pre>\n<\/div>\n<p><strong><em>\u81f3\u6b64github<\/em><\/strong><strong><em>\u7684\u4f7f\u7528\u5c31\u4ecb\u7ecd\u5b8c\u4e86<\/em><\/strong><\/p>\n<h2><span id=\\\"111_JetBrains_PyCharm_github\\\">1.11 JetBrains PyCharm\u00a0\u4f7f\u7528github<\/span><\/h2>\n<div>\nPyCharm\u00a0\u4e0b\u8f7d\uff1a\u00a0<a href=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/inc\/go.php?url=http:\/\/www.jetbrains.com\/pycharm\/download\/#section=windows\\\">http:\/\/www.jetbrains.com\/pycharm\/download\/#section=windows<i class=\\\"be be-anchor\\\"><\/i><\/a>\n<\/div>\n<h3><span id=\\\"1111_PyCharm_github\\\">1.11.1 PyCharm\u00a0\u4e0agithub\u8bbe\u7f6e<\/span><\/h3>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172928558-525807597.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u9009\u62e9github\u8fdb\u884c\u8fde\u63a5<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172936620-209187871.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172936620-209187871.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u7528\u6237\u5bc6\u7801\u51c6\u786e\u540e\u4f1a\u751f\u4ea7token<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172942854-609274746.png\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172942854-609274746.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u7136\u540e\u70b9\u51fbok\u5373\u53ef<\/p>\n<h3><span id=\\\"1112\\\">1.11.2\u00a0\u63a8\u9001\u4ee3\u7801<\/span><\/h3>\n<p>\u73b0\u786e\u4fdd\u6709\u4e4b\u524d\u5b89\u88c5\u7684windwos\u7aefgit\uff0c\u6d4b\u8bd5\u8def\u5f84<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172949995-846642301.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5171\u4eab\u4ee3\u7801<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130172956479-949503333.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u8f93\u5165\u4fe1\u606f\uff0c\u8fdb\u884c\u5171\u4eab<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130173003089-706424074.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u4ee3\u7801\u53d1\u5e03\u6210\u529f\u00a0https:\/\/github.com\/clsn-git\/test1<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130173009104-332127144.png\\\" \/><\/p>\n<p><strong><em>\u81f3\u6b64pycharm<\/em><\/strong><strong><em>\u4f7f\u7528github<\/em><\/strong><strong><em>\u5c31\u5b8c\u6210\u4e86<\/em><\/strong><\/p>\n<h2><span id=\\\"112_pycharmgitlab\\\">1.12 pycharm\u4f7f\u7528gitlab<\/span><\/h2>\n<p>\u4f7f\u7528pycharm\u662f\u7684vcs\uff0c\u73b0\u5728git<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130173017073-1107328223.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u8f93\u5165gitlab\u5730\u5740<br \/>\n\u7136\u540e\u8f93\u5165\u7528\u6237\u540d\u53ca\u5bc6\u7801<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130173024261-1849548232.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6dfb\u52a0\u4e00\u4e9b\u6ce8\u91ca\u4fe1\u606f<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130173031183-49085239.png\\\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5728gitlab\u7684\u754c\u9762\u4e2d\u5c31\u80fd\u67e5\u770b\u5230\u957f\u4f20\u7684\u4ee3\u7801<\/p>\n<p align=\\\"center\\\"><img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"Git\u8be6\u89e3\u53ca github\u4e0egitlab\u4f7f\u7528\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20171130173037511-380711709.png\\\" \/><\/p>\n<p><strong><em>\u81f3\u6b64pycharm<\/em><\/strong><strong><em>\u4f7f\u7528gitlab<\/em><\/strong><strong><em>\u5c31\u7ed3\u675f\u4e86<\/em><\/strong>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1.1 \u5173\u4e8e\u7248\u672c\u63a7\u5236 1.1.1\u00a0\u672c\u5730\u7248\u672c\u63a7\u5236 \u672c\u5730\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u00a0\u8bb8\u591a\u4eba\u4e60\u60ef\u7528\u590d\u5236\u6574\u4e2a\u9879\u76ee\u76ee\u5f55\u7684\u65b9\u5f0f\u6765\u4fdd\u5b58\u4e0d\u540c &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.weijing.co\/?p=5437\"> <span class=\"screen-reader-text\">\u7248\u672c\u63a7\u5236Git\u3001 github\u3001gitlab\u8be6\u89e3<\/span> \u67e5\u770b\u5168\u6587 &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[132,103],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false,"shop_catalog":false,"shop_single":false,"shop_thumbnail":false},"uagb_author_info":{"display_name":"weijing","author_link":"http:\/\/www.weijing.co\/?author=4"},"uagb_comment_info":4,"uagb_excerpt":"1.1 \u5173\u4e8e\u7248\u672c\u63a7\u5236 1.1.1\u00a0\u672c\u5730\u7248\u672c\u63a7\u5236 \u672c\u5730\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u00a0\u8bb8\u591a\u4eba\u4e60\u60ef\u7528\u590d\u5236\u6574\u4e2a\u9879\u76ee\u76ee\u5f55\u7684\u65b9\u5f0f\u6765\u4fdd\u5b58\u4e0d\u540c&hellip;","_links":{"self":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/5437"}],"collection":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5437"}],"version-history":[{"count":0,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/5437\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5437"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}