Git 基本命令

1.git安装后设置《用户名》和《邮箱》;查看自身《用户名》和《邮箱》

//设置
$ git config --global user.name "yangkang" $ git config --global user.email "kang.yang@arvato.com" //查看 $ git config user.name yangkang $ git config user.email kang.yang@arvato.com

2.创建工作区间,初始化工作区

//查看当前路径
$ pwd
/c/Users/YANG295/Desktop$ git init
Initialized empty Git repository in C:/Users/YANG295/Desktop/.git/

3.添加文件到缓存区,commit提交

git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)git add -A :是上面两个功能的合集(git add --all的缩写)

 

//添加,可add 多个文件,一次commit提交
$ git add demo.txt
//提交
$ git commit -m "本次提交的描述"

4.查看git状态

//查看状态
$ git status

5.比较工作区修改前后文件,修改未add

$ git diff demo.txt

6.git查看日志log和reflog

//git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
$ git reflog
58b8ed8 (HEAD -> master) HEAD@{0}: commit: 测试修改文件查看区别
6c43baa (origin/master) HEAD@{1}: merge b1: Fast-forward//git log 命令可以显示所有提交过的版本信息;可以加上参数  --pretty=oneline,只会显示版本号和提交时的备注信息
$ git log
commit 58b8ed8f78cd8d52281a28aec6602e03ba82b7a2 (HEAD -> master)
Author: yangkang <kang.yang@arvato.com>
Date:   Thu Nov 8 14:23:06 2018 +0800测试修改文件查看区别$ git log --pretty=oneline
58b8ed8f78cd8d52281a28aec6602e03ba82b7a2 (HEAD -> master) 测试修改文件查看区别

7.git版本回退(需要reflog知晓commitid的前7位)注意是--hard

//$ git reflog 
58b8ed8 (HEAD -> master) HEAD@{0}: commit: 测试修改文件查看区别
6c43baa (origin/master) HEAD@{1}: merge b1: Fast-forward
a289a45 HEAD@{2}: checkout: moving from master to master
a289a45 HEAD@{3}: checkout: moving from b1 to master
6c43baa (origin/master) HEAD@{4}: commit: 创建分支并修改了index.html//回退到commitid a289a45
$ git reset --hard a289a45
a289a45 (HEAD -> master) HEAD@{0}: reset: moving to a289a45
58b8ed8 HEAD@{1}: reset: moving to 58b8ed8
58b8ed8 HEAD@{2}: commit: 测试修改文件查看区别
6c43baa (origin/master) HEAD@{3}: merge b1: Fast-forward
a289a45 (HEAD -> master) HEAD@{4}: checkout: moving from master to master
a289a45 (HEAD -> master) HEAD@{5}: checkout: moving from b1 to master
6c43baa (origin/master) HEAD@{6}: commit: 创建分支并修改了index.html

8.取消工作区修改(实际上使用版本库文件替换)

$ git checkout --demo.txt

9.取消暂存区文件的修改;注意是HEAD

$ git reset HEAD demo.txt

10.删除版本库中文件

//git rm和git add都属于对暂存区的操作
$ git rm demo.txt$ git commit -m 删除demo文本

11.添加远程仓库并push  拖下远程代码到问题pull

//添加远程仓库地址
$ git remote add origin http://www.gitlab.com/yangjingkang/test.git//push 第一次提交,加入 -u参数
$ git push -u origin master
//拖下远程代码
git pull <远程主机名> <远程分支名>:<本地分支名>
eg:git pull origin master:brantest将远程主机origin的master分支拉取过来,与本地的brantest分支合并。后面的冒号可以省略:git pull origin mastergit pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并。一句话总结git pull和git fetch的区别:git pull = git fetch + git merge

 

12.从远程仓库克隆

//后面可再跟名字作为。新git库
$ git clone http://www.gitlab.com/yangjingkang/test.git newGit

13.创建新的分支

//创建并切换到分支
$ git checkout -b dev//查看git下所有分支,*表示当前分支
$ git branch 
* dev
   master//$ git checkout -b dev等于如下两条命令
$ git branch dev //创建分支 dev
$ git checkout dev //切换到 dev 分支

14.合并分支(合并前先切换回主分支master,才能进行合并)

//切换回主分支
$ git checkout master$ git branch dev
*  master//将dev分支合并到主分支master
$ git merge dev

 15.删除分支

//删除dev分支
$ git branch -d dev 

16.解决冲突(主从分支对同一个文件同一处代码进行了修改并commit,合并时报failed;需手动调整重新提交)

17.查看分支合并图

$ git log --graph

18.分支策略

分支策略
实际开发原则如下:
1.master仅用来发布新版本(把dev分支合并到master,再发布新版本)
2.开发人员都在dev分支上干活,每个人都有自己的分支,定期向dev分支合并即可。

19.git stash 暂存当前编辑(必须把修改的文件git add后,才可以git stash;

     git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。)

//暂存
$ git stash
//查看保存清单
$ git stash list
//返回暂存
$ git stash pop

20.git 查看远程仓库信息

$ git remote
origin

21.推送分支(会推送到远端对应的分支上)

语法:$ git push <远程主机名> <本地分支名>:<远程分支名> 若省略远程分支,代表将本地当前分支推送到远端对应分支
git push origin master // 推送到远端的master
git push origin dev //推送到远端的dev
什么样的分支需要推送到远端?我认为凡是需要大家共享的分支就需要push到远端

22. 从远程仓库克隆

$ git clone git@github.com:jasondong-1/gitpractice.git //git clone 默认只会把远端的master克隆下来
$ git branch
* master 

 23.获取远端其他分支

$ git checkout -b dev origin/dev //现在有了对应的dev分支
$ git branch
* devmaster

24.两人同时修改了同一份文件向远端push冲突的解决

$ git push origin dev
//git 建议push 之前先pull (拉取同步)//或者是手动处理掉
//解决冲突后,重新add commit

 25.git打标签(人类可以识别的标志)

git tag v0.1 33dd7af //33dd7af是commit-id
或
$ git tag -a v0.2 -m "stable edition" e47dc70查看 tag 
git tag

 26.操作标签

git push origin <tagname>可以推送一个本地标签;
git push origin --tags可以推送全部未推送过的本地标签;
git tag -d <tagname>可以删除一个本地标签;
git push origin :refs/tags/<tagname>可以删除一个远程标签。

 27..gitignore 可以忽略.gitignore 文件中的文件

复制代码
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
复制代码

 28.克隆当个分支项目

git clone -b lankou2 http://www.gitlab.com/CRM_PRODUCT/CODE/ec_product.git //clone lankou2分支

29.克隆多个分支项目

如果要clone所有分支,也可以这样解决这个问题:

  找一个干净目录,假设是 iview_project

cd iview_project //切换到指定目录
git clone https://github.com/iview/iview-admin.git //克隆项目

这样在 iview_project 目录下得到一个 iview-admin 子目录

cd iview-admin //切换到项目目录
git branch -a //列出所有分支名称如下: * 号表示当前分支
* dev 
remotes/origin/HEAD -> origin/dev
remotes/origin/desktop
remotes/origin/dev
remotes/origin/gh-pages
remotes/origin/master
remotes/origin/template


说明: origin/template, origin是远程仓库名,template是远程仓库的一个分之,由上结果可以看出,远程仓库origin还有desktop、dev、gh-pages、template、master等分支。

接下来,可以在本地新建分支并与远程仓库的分支进行关联了

git checkout -b template origin/template // 作用是checkout远程仓库origin的分支template,在本地起名为template分支,并切换到本地的template分支

git checkout -b desktop origin/desktop // 作用参见上一步解释

 

//第一次切换分支,就用上面命令,如果本地已经存在了对应的分支可以直接:

git checkout dev // 切换回dev分支,并开始开发。//查看分支命令
git branch -a //查看所有分支

git branch -r //查看远程分支

 

转载于:https://www.cnblogs.com/yangjingkang/p/9929409.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习(78):GUL拆分窗口

//拆分窗口 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test13 extends JFrame {JSplitPane cf;//分成左右两面JList lb;JLabel bq;public static void main(String[] args){test13 lx1new te…

java学习(79):GUL聊天窗口

//聊天窗口 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test14 extends JFrame {JTextArea wby;JPanel mb;JComboBox xlk;JButton an;JTextField wbk;JScrollPane gd;public static void main…

linux最大权限命令,linux权限管理

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;chmod命令用来变更文件或目录的权限。在UNIX系统家族里&#xff0c;文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分&#xff0c;另有3种特殊权限可…

java学习(80):GULqq界面

//qq界面 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test15 extends JFrame {JLabel bq1;//北部JButton an1,an2,an3; JPanel mb1;//南部JTabbedPane xxk;//中部JPanel mb2,mb3,mb4;JLabel bq…

Android计时器

熟悉和掌握Android线程的使用 实验要求&#xff1a; 完成一个秒表&#xff0c;具备启停功能&#xff0c;正确使用工作线程完成界面刷新 分析秒表的计时是否准确&#xff0c;原因是什么&#xff0c;如何保证秒表计时准确 代码实现&#xff1a; &#xff08;1&#xff09;Activit…

java学习(81):静态代码块

//静态代码块class test16 {private static final String URL;private static final String DEVICE;private static final String USER;private static final String ROOT;static test16 self;static {URL"歌谣";DEVICE"笔记本电脑";USER"root";…

linux用echo显示欢迎信息,我使用过的Linux命令之echo - 显示文本、打印信息

&#xfeff;&#xfeff;用途说明echo命令用来打印信息&#xff0c;是一个最常用的命令。在命令行中常用来打印环境变量的值&#xff0c;已确定当前环境中是否设置了指定的环境变量。在shell脚本中&#xff0c;常用来打印信息和帮助调试程序。常用参数-n 打印信息之后不换行。…

java学习(82):静态代码块内部类

//静态代码块内部类 public class test18{private static final String URL;private static final String DEVICE;private static final String USER;private static final String ROOT;static test18 self;static {class Inner{public void printMessage(){System.out.println…

linux进程管理fork,Linux -- 进程管理之 fork() 函数

一个进程调用fork()函数后&#xff0c;系统先给新的进程分配资源&#xff0c;例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中&#xff0c;只有少数值与原来的进程的值不同。相当于克隆了一个自己。Test1for(int i 0; i<2; i){if(fork() 0)print…

java学习(83):常用基础类object

//常用基础类 public class ObjectClass {private String name;private int age;public void say(){System.out.println(name);System.out.println(age);}public void setAge(int age) {this.age age;}public int getAge() {return age;}public void setName(String name) {th…

Elasticsearch及相关插件的安装

Elasticsearch及相关插件的安装 1、安装Elasticsearch并启动服务 2、安装第三方插件 2.1、Head插件 是Elasticsearch的一个集群管理工具&#xff0c;可以通过它来查看和搜索ES的数据&#xff0c;是完全由html5编写的独立网页程序。 2.2、Bigdesk插件 是Elasticsearch的一个集群…

java学习(84):object常用方法tostring,equals,hashcode

//object常用方法 public class test21 {public static void main(String[] args) {Object obj new Object();ObjectCl usr new ObjectCl();usr.setAge(6);usr.setName("歌谣");usr.say();//tostringString str usr.toString();System.out.println(str);//equalsO…

linux不支持32,Visual Studio Code 1.36发布,不再支持Linux 32位

VS Code 1.36&#xff0c;即2019年6月发布的Visual Studio Code&#xff0c;已发布。新版本已更新至Electron 4.x&#xff0c;意味着它将不再在Linux 32位上运行。现在可以将文件夹从VS Code外部拖放到文件资源管理器中进行复制。 以前&#xff0c;在将文件夹放入VS Code Explo…

java学习(85):Interage包装类基本使用

测试类 public class test22 {public static void main(String[] args){int num5;Integer obj1new Integer(num);System.out.println("obj1的值为"obj1);Integer obj2100;System.out.println("obj2的值为"obj2);Integer obj3new Integer("-789"…

linux 调用rest接口,REST调用

1. 概述与SOAP相比&#xff0c;REST WebService简化了调用&#xff0c;也降低了技能要求。REST 近年来已经成为最主要的 Web 服务设计模式。 事实上&#xff0c;REST 对 Web 的影响非常大&#xff0c;由于其使用相当方便&#xff0c;已经普遍地取代了基于 SOAP 和 WSDL 的接口设…

java学习(86):Interage方法compareto,parseint,intvalue

public class test22 {public static void main(String[] args){int num5;Integer obj1new Integer(num);System.out.println("obj1的值为"obj1);Integer obj2100;System.out.println("obj2的值为"obj2);Integer obj3new Integer("-789");System…

JAVA四则运算(读写文件)

完成时间&#xff1a;17&#xff1a;10 package 四则运算试题;import java.io.BufferedReader; import java.io.PrintStream; import java.util.Scanner; import java.io.FileReader; import java.io.IOException; public class jisuanti {public static void main(String[] ar…

java学习(87):Interage包装类进制转换

public class test22 {public static void main(String[] args){int num5;Integer obj1new Integer(num);System.out.println("obj1的值为"obj1);Integer obj2100;System.out.println("obj2的值为"obj2);Integer obj3new Integer("-789");System…

java学习(88):Charactor包装类

//Character包装类 public class test23 {public static void main(String[] args){char chA;//使用构造方法Character obj1new Character(中);//使用静态方法Character obj2Character.valueOf(ch);//获取char值char zhongobj1.charValue();System.out.println(zhong);int reso…

【Java】 剑指offer(67) 把字符串转换成整数

本文参考自《剑指offer》一书&#xff0c;代码采用Java语言。 更多&#xff1a;《剑指Offer》Java实现合集 题目 请你写一个函数StrToInt&#xff0c;实现把字符串转换成整数这个功能。当然&#xff0c;不能使用atoi或者其他类似的库函数。 思路 题目很简单&#xff0c;主要就…