Contents
  1. 1. init repository
  2. 2. clone
  3. 3. branch
  4. 4. tag
  5. 5. undo all changes
  6. 6. github操作

总结经常使用到的git命令。

init repository

在将写好的工程上传到远端git服务器时,需要以下几个步骤:

初始化本地repository。

1
git init

对本地repository进行git管理。

1
2
git add *
git commit -m "some info"

关联远端repository。

1
git remote add origin https://github.com/yourgithubID/gitRepo.git

这个 *https://github.com/yourgithubID/gitRepo.git * 必须存在,需要提前到github上建好。当然这里不限于github,其他git服务器也可以。

将本地仓库push到远程仓库

1
git push -u origin master

由于在建立github repository时,在master分支创建了README.md,在push时候出现错误。
可以通过如下命令进行代码合并【注:pull=fetch+merge]

1
git pull --rebase origin master

执行上面代码后可以看到本地代码库中多了 README.md 文件。
再执行语句 git push -u origin master 即可完成代码上传到github。

github新建本地仓库并将代码提交到远程仓库
如何解决failed to push some refs to git

clone

--depth <depth> 可以加速repository的下载速度,指定commit history中的depth条记录。

比如,下条只取最近一次commit的history。

1
git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

branch

  • list branches
1
git branch -a
  • checkout a specific branch
1
git checkout <branch_name>
  • Create the branch on your local machine and switch in this branch

    1
    git checkout -b [name_of_your_new_branch]
  • Push the branch on github

    1
    git push origin [name_of_your_new_branch]

或者首次使用 -u 选项,之后仅仅使用git push即可。

1
git push -u origin <branch>

Create a new branch with git and manage branches

tag

git可以对某一时间点的版本打标签tag

  • 列出所有tag
1
2
git tag -l
git tag -l 'v3.14.*'
  • checkout a specific tag
1
git checkout tags/<tag_name>

Download a specific tag with Git

undo all changes

  • unstage all files you might have staged with git add
1
git reset
  • revert uncommitted changes
1
2
3
git checkout .
# or
git reset --hard HEAD
  • remove all local untracked files

preview files to be deleted!

1
git clean -n

then remove all untracked files.

1
git clean -fdx

git undo all uncommitted or unsaved changes

github操作

为了方便管理repository,免去每次push时候输入账户名和密码,接下来我们需要生成SSH公私钥对,并将公钥上传到 project->Settings->Deploy keys->Add deploy key。
首先检查是否已经存在 SSH key

1
ls -al ~/.ssh

出现类似

id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub

如果想继续使用上述密钥,可直接将公钥拷贝出来;否则,要继续自行生成。

Generating a new SSH key and adding it to the ssh-agent

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

如果想要保存不一样的位置或者名称,在下面的提示信息中输入即可。

Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]

将 SSH key 添加到 ssh-agent 中。

1
2
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

执行ssh-add时出现 Could not open a connection to your authentication agent
可能当前SHELL不支持,退出当前SHELL即可。

1
ssh-agent bash

再次执行

1
2
ssh-add ~/.ssh/id_rsa
ssh-add -l

之后将 ~/.ssh/id_rsa.pub 内容拷贝到github的project->Settings->Deploy keys->Add deploy key。

这时执行 push 命令可能还会出现输入密码的问题,或者说没有权限。
查看.git/config文件查看传输协议, 如果是https模式改为ssh模式即可。

Github Deploy Key 操作如何避免输密码

Contents
  1. 1. init repository
  2. 2. clone
  3. 3. branch
  4. 4. tag
  5. 5. undo all changes
  6. 6. github操作