在linux下使用github

  • 首先创建文件夹,然后通过命令行进行初始化。
    • cd进入到想要github管理的文件夹下面
    • git init 初始化
    • 添加新文件,编辑完后用add命令 git add filename
    • git commit命令告诉git,把文件提交到仓库:
      git commit -m "write a new file"
      git add命令add多个文件后,然后再提交commit。
    • git status 可以查看当前git的状态,可以知道有没有做更改等
    • git diff 可以查看具体更改了什么地方,查看具体更改了什么地方才安心提交。安心用git add filename命令,进行修改提交,修改提交和新增文件是一样的命令。然后再git commit -m “xxxxxx”
  • 版本回退
    • 每次提交或更新后相应的版本号也会更新,git计算出SHA1码作为版本号,避免不同终端的版本号冲突。在git中,使用HEAD表示当前版本号,HEAD^表示前一个版本,HEAD^^表示上上个版本。前10个版本可以使用HEAD~10
    • 返回上一个版本命令:git reset --hard HEAD^
    • 回到上一个版本后,又想回到未来的版本,可以查找上一个版本的commi id. 方法:git reflog命令,可以找到之前的git操作。找到相应版本的head。或者到.git文件夹里面找到之前的那个head文件夹。里面有相应的head id 。
    • git log查看 git 日志
  • 其他命令
    • git diff HEAD -- filename 可以查看版本库里面的文件和当前文件有什么差别。
    • git checkout -- filename撤销工作区的修改(包括删除),使得工作区的文件和暂存区或版本库里面的一样。即该操作就是丢弃工作区的修改
    • git reset HEAD file丢弃暂存区的修改。
    • 删除操作:
      • 可以直接用命令rm filename 在文件夹中删除,然后将更改提交到版本库
      • 也可以直接在版本库中删除:git rm filename,然后git commit -m "delete filename"
  • 远程库(先有本地库,后有远程库)
    • 首先在githu上面建立一个版本库
    • 然后关联远程库:git remote add origin git@github.com:mumianyuxin/repo-name.git
    • 关联后使用命令git push -u origin master第一次推送master分支的所有内容;
    • 此后,本地每次提交后,只要有必要,就可以使用命令git push origin master推送修改,其中master是本地分支的名字。
  • 远程库(先有远程库,把远程库克隆)
    • git clone git@github.com:mumianyuxin/repo-name.git其中:mumianyuxin/repo-name.git是远程仓库的名称,运行完后会在本地生成一个和远程仓库一样名称的本地文件夹。
  • 创建与合并分支
    • 创建新分支,这里是dev分支:git checkout -b branchname或者,git branch branchname + git checkout branchname
    • 查看当前所有分支git branche,就会列出所有分支,当前分支会在前面加上*
    • 切换分支:git checkout branchname
    • 工作成果合并:git merge branchname将指定分支合到当前分支。
    • 删除分支:删除已经被merge过的分支,git branch -d branchname,删除还没被merge过的分支,强制删除git branch -D branchname
    • git merge branchname显示有冲突时,git status查看有冲突的文件,然后再编辑有冲突的文件,选择保留哪个分支更改的内容,然后再git add filename+git commit -m "xxxxxxxxxxxxxxx"
    • 带参数的git log命令也可以查看分支的合并情况,git log --graph --pretty=oneline --abbrev-commitgit log --graph
  • 分支管理
    • 禁用Fast foward模式的合并,这样相当于时在主线上增加一次commit可以遗留下commit信息。git merge --no-ff -m "xxxxxxxxxxxxxxxxxxxxxxxxxxx" branchname因为时相当于重新commit一次,所以需要加上-m参数并进行相应的描述。
    • 我们在一个协作项目里面工作的时候,master分支应该时最稳定的,是放发布版本的地方,应该创建一个工作版本(比如dev分支),然后伙伴们在dev分支上进行再分支,然后每个人修改完成后再合并到dev分支,dev分支稳定后再merge到master分支。
  • bug分支

    • 有时候要暂存当前dev支的工作文件(还没有commit)的文件,而需要紧急debug master branch。 这时候stash就派上用场了。 命令git stash,然后git checkout branchname 转到想要 debug 的 branch,创建新分支,git branch branchname 然后git checkout branchname转到新建的分支,修复完成后,merge到master。git branch -d branchname删除刚刚用于debug分支。然后回到dev分支,git stash list查看stash里面的内容。恢复的时候有两种方法,一:git stash apply,恢复后stash的内容没有删除,需要手动git stash drop来删除;二:git stash pop恢复的同时把stash里面相应的东西也删除了。
    • 多次stash后想恢复相应的版本:先用git list查看相应的版本号,用git stash apply stash@{0}进行恢复。
    • 多人协作
    • 查看远程库信息,使用git remote -v

    • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

    • 从本地推送分支,使用git push origin branch-name ,如果推送失败,先用git pull抓取远程的新提交;
    • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
    • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
    • 从远程抓取分支,使用git pull ,如果有冲突, 要先处理冲突。
  • 标签管理
    • 命令git tag <name> 用于新建一个标签, 默认为HEAD, 也可以指定一个commit id,如git tag <tagname> <commit id>
    • git tag -a <tagname> -m "blablabla..." 可以指定标签信息;
    • git tag -s <tagname> -m "blablabla..." 可以用PGP签名标签;
    • 命令git tag可以查看所有标签。
    • 删除标签:
      • 命令git push origin <tagname> 可以推送一个本地标签;
      • 命令git push origin --tags 可以推送全部未推送过的本地标签;
      • 命令git tag -d <tagname>可以删除一个本地标签;
      • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
  • 使用GitHu
    • 参与别人的开源项目。
      • 在该项目的网站上点击Fork,就可以在自己的账号下克隆一份与项目一样的仓库。
      • 然后就可以从自己的仓库下clonepush等,想要将自己的更改更新到项目官方库,可以在网站上面pull request
  • 使用码云
    • 将本地仓库关联远程库 git remote add origin git@gitee.com:liaoxuefeng/learngit.git
    • 如果失败,并报告说已经本地仓库已经和远程仓库关联了,可以先关闭原先的关联:git remote rm origin,用git remote -v查看关联信息。
    • 同一个本地库关联不同的远程库:
      • git remote rm origin删除原来的关联。
      • git remote add github git@github.com:michaelliao/learngit.git将本地库关联到github,注意,远程库的名称叫做github了,而不叫origin,相应的命令行在使用命令行的时候注意远程库的名称。
      • git remote add gitee git@gitee.com:liaoxuefeng/learngit.git关联到码云,该远程库的名称叫做gitee。
      • 如果push到github,命令git push github master
      • 如果push到gitee,命令git push gitee master
  • 自定义git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值