美文网首页
【GitHub】GitHub的使用

【GitHub】GitHub的使用

作者: 感同身受_ | 来源:发表于2019-08-02 16:03 被阅读0次

    基本指令

    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推送。

    相关文章

      网友评论

          本文标题:【GitHub】GitHub的使用

          本文链接:https://www.haomeiwen.com/subject/ddyirctx.html