【GitHub】GitHub的使用

基本指令

  1. 配置自己的身份:
    git config -- global user.name "Tony"设置自己的名字
    git config -- global user.email "tony@qq.com"设置自己的邮箱
  2. 初始化代码仓库:
    新建一个文件夹,右键打开Git Bash Here
    然后git init初始化代码仓库
  3. 提交代码:
    主要使用addcommit命令
    add是把想要提交的代码先添加进来(添加到缓冲区)
    commit是真正的执行提交操作(提交到gitHub上)
  4. 添加build.gradle文件git add build.gradle
    添加app这个目录git add app
    添加整个所有文件git add .
  5. 提交文件
    git commit -m "First commit"-m后面的引号之中的内容是提交备注,比如备注你修改了什么,第几次提交等

完整的提交操作

//在你的项目里面初始化操作
git init 
//是将你的项目添加到index区域  一般使用 git add -f .
git add README.md 
//提交, -m:message  也可以加.
git commit -m“first commit” 
//将你的gitHub上面的仓库地址换个名字,此操作只要在git push之前用就行
git remote add origin https://github.com/programmer-ls/myRepository.git
//将项目push到分支下的master下面
 git push -u origin master

第三周

  1. 忽略不想提交的文件操作:
    android studio根目录和app目录下都有一个.gitignore,我们可以在app的.gitignore下面添加不想提交的文件,如:
/build
/src/test
/src/androidTest
  1. Git查看自上次提交后文件修改的内容:git status
  2. Git查看自上次提交后文件修改的具体内容:git diff
  3. Git查看自上次提交后MainActivity.java这个文件修改的具体内容:
    git diff app/src/main/java/com/example/xxx/MainActivity.java
  4. 撤销未提交的修改,如撤销MainActivity.java这个文件:
    git checkout app/src/main/java/com/example/xxx/MainActivity.java
    【注】这种撤销方式只适用于那些还没有执行过的add命令的文件,如果某个文件已被添加过,则无法撤销
  5. 取消添加:reset:版本回退,回到你上n次提交的版本
    如:git reset HEAD app/src/main/java/com/example/xxx/MainActivity.java
git reset --hard HEAD^ : 回到前一个版本
git reset --hard HEAD^ : 回到前两个版本
git reset --hard HEAD~100 : 回到前100个版本
  1. 丢弃工作区的修改git checkout -- file--比较重要,不然命令会变成创建分支
    Git2.23版本中,已经使用了新命令git restore来替代git checkout的文件恢复功能
$ git checkout --first.txt
Updated 1 path from the index
  1. 查看提交记录:git log
    会显示你每次提交的时间和提交的备注
Author: ls <1584677103@qq.com>
Date:   Sun Jul 19 18:31:57 2020 +0800

    部分bu修复

commit 8ff0880c1223893ecaac72cde084f775727bc8c6
Author: ls <1584677103@qq.com>
Date:   Thu Jun 4 19:14:33 2020 +0800

    改善了查看小票信息是否存在的请求

commit 6e60cf98bd07c67eeba5dcb01625583588603c23 (origin/master)
Author: ls <1584677103@qq.com>
Date:   Thu Jun 4 15:16:18 2020 +0800

    首页界面完善

commit f64345ecb81b2a245a44039fe01fbcbb7ddfe89b
Author: ls <1584677103@qq.com>
Date:   Tue Jun 2 15:04:48 2020 +0800

    图表分析界面以及逻辑基本完善

  1. 查看其中的一条提交记录,可在命令中指定该记录的id,并加上-1参数,如:
    git log e36a0b92f52304849a2d0a516d3d12cf3639ea8c -1
  2. 查看这条提交记录具体修改了什么内容,在命令中加入-p参数
    git log e36a0b92f52304849a2d0a516d3d12cf3639ea8c -1 -p

第四周

  1. 查看当前版本库中有哪些分支:git branch
  2. 创建一个分支:git branch version1.0
  3. 分支列表前的“ * ”表示我们的代码在这个分支下面。切换分支:git checkout version1.0
    两分支的操作互不影响
  4. 合并操作:git checkout master
    git merge version1.0
    可将version1.0分支上修改并提交的内容合并到master分支上
  5. 删除分支:git branch -D version1,0
  6. 下载代码到本地:git clone https://git.com/example/xxx.git
  7. 将本地修改的代码同步到远程版本库上git push xx master
    xx:是gitHub仓库地址的重命名
  8. 将远程版本库上的修改同步到本地:
    git fetch xx master这个命令会让远程版本库上的修改同步到本地,不过同步下来的代码并不会合并到任何分支上,而是存放到xx/master分支上,可通过git diff xx/master看修改了哪些东西,在调用git merge xx/master将分支上的修改合并到主分支上
    git pull xx master这个命令将以上的功能全部实现,它可以获取最新代码并合并到本地

分支运用:

  1. 创建分支:
    git branch [分支名]
    git checkout -b [分支名] :创建并切换分支
  2. 删除分支:
    git branch –d [分支名]
  3. 查看分支
    git branch -v
  4. 切换分支
    git checkout [分支名]
  5. 合并分支
    首先自己在一个分支下面,然后使用git merge [分支名],就可以将当前分支和merge的分支合并
    具体操作:
  • A:切换到接受修改的分支(被合并,增加新内容)上
    git checkout [被合并的分支名]
  • B:执行merge命令
    git merge [有新内容的分支名]
  1. 解决冲突
  • A:冲突的表现,当两个分支修改了同一个地方后
 9<<<<<<< HEAD  :<<<HEAD是指主分支修改的内容
10hhhhhhh edit by hot_fix
11=======
12hhhhhhh edit by master
13>>>>>>> master

类似与此类情况,两个分支同时修改了文件的 hhhhhhh 的地方,就会出现此类标记

  • B:冲突的解决
    A:编辑文件,删除特殊符号<<<<<<< ====== >>>>>>>等等符号
    B:把文件修改到满意的程度,保存退出
    C:git add [文件名]
    D:git commit -m"日志信息"
    【注】此时commit一定不能带具体文件名

关联远程仓库

git remote add origin git@server-name:path/repo-name.git // 关联一个远程仓库,如:$ git remote add origin 

将代码提交到分支上面

首先说一下我一直迷惑的问题,如果我初始化了本地仓库,该如何和远程仓库连接呢?
其实我之前就已经写过了,git remote [仓库别名] https地址就是这句
然后开始记录完整步骤

  1. git init初始化仓库
  2. git add .添加
  3. git commit -m"备注"提交
  4. git branch -a查看仓库的已存在的分支
    注:如果没有git add和git commit,这条语句没有结果
  5. git checkout -b [分支名]创建并切换分支
  6. git push [仓库名] -f [分支名]将文件上传到远程仓库
    注:此时不写分支名,上传失败,因为他不知道该上传到哪个分支

bug分支:

情景:当你遇到一个bug,需要2天完成,但是另一个简单的bug几小时就能完成,这时又不能将2个工作量的bug修改量的修改提交,所以就先把对两天工作量的修改先隐藏,待完成几小时的小bug后再来看这个问题

  1. 将当前的工作现场(2天工作量的分支下)隐藏起来:git stash
    使用后,使用git status将看不到我们修改的状态信息
  2. 创建一个临时分支:git checkout -b [临时分支名]
  3. 修复bug之后,将临时分支和要修改的分支合并:git merge [临时分支名]
  4. 将临时分支删掉:git branch -d [临时分支名]
  5. 切换到2天工作量的bug分支下面
  6. 回来查看之前隐藏的修改:git stash list
$ git stash list
stash@{0}: WIP on master: 4c6c58b master上的提交
  1. 将之前stash的内容恢复:git stash apply
$ git stash apply
Auto-merging second.txt
CONFLICT (content): Merge conflict in second.txt
  1. 恢复后,stash的内容并未被删除,应手动删除:git stash drop
$ git stash drop
Dropped refs/stash@{0} (fddcff0de144d056ad392eb7c58a746e18ac0f4a)
  1. 7、8可以合并为git stash pop
    恢复的同时,删除stash

多人协作

  1. push: git push origin master
    master分支是主分支,因此要时刻与远程同步。
    一些修复bug分支不需要推送到远程去,可以先合并到主分支上,然后把主分支master推送到远程去。

多人协作工作模式一般是这样的:
首先,可以试图用git push origin branch-name推送自己的修改.
如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容