找回密码
 立即注册
首页 资源区 代码 Git
准挝 2025-6-5 18:36:03
Git

查看所有的配置以及它们所在的文件
  1. git config --list --show-origin
复制代码
获取git仓库

在已存在目录中初始化仓库
  1. cd /c/user/my_project
  2. git init
  3. git add .
  4. git commit -m 'initial project version'
复制代码
克隆现有的仓库
  1. git clone https://github.com/libgit2/libgit2 [mylibgit]  #自定义本地仓库的名字,你可以通过额外的参数指定新的目录名
复制代码
记录每次更新到仓库

git status 命令查看哪些文件处于什么状态
git add 开始跟踪一个文件
忽略文件

我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式
.gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
  1. # 忽略所有的 .a 文件
  2. *.a
  3. # 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
  4. !lib.a
  5. # 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
  6. /TODO
  7. # 忽略任何目录下名为 build 的文件夹
  8. build/
  9. # 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
  10. doc/*.txt
  11. # 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
  12. doc/**/*.pdf
复制代码
GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表, 你可以在 https://github.com/github/gitignore 找到它
查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff
提交更新
  1. git commit
  2. git commit -m "Story 182: Fix benchmarks for speed" #在 commit 命令后添加 -m 选项,将提交信息与命令放在同一行
  3. git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
复制代码
移除文件

git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中
查看提交历史

git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面
中一个比较有用的选项是 -p 或 --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交
撤消操作

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交:
  1. $ git commit --amend
复制代码
例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
  1. $ git commit -m 'initial commit'
  2. $ git add forgotten_file
  3. $ git commit --amend
复制代码
最终你只会有一个提交——第二次提交将代替第一次提交的结果。
git reset HEAD ... 来取消暂存
git checkout --  是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它
远程仓库的使用

查看远程仓库

查看你已经配置的远程仓库服务器,可以运行 git remote 命令
会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字
指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
1.jpg

运行 git remote add   添加一个新的远程 Git 仓库,同时指定一个方便使用的简写
从远程仓库中抓取与拉取
  1. git fetch <remote>
复制代码
推送到远程仓库
  1. git push origin master
复制代码
查看某个远程仓库

git remote show
  1. $ git remote show origin
  2. * remote origin
  3.   Fetch URL: https://github.com/schacon/ticgit
  4.   Push  URL: https://github.com/schacon/ticgit
  5.   HEAD branch: master
  6.   Remote branches:
  7.     master                               tracked
  8.     dev-branch                           tracked
  9.   Local branch configured for 'git pull':
  10.     master merges with remote master
  11.   Local ref configured for 'git push':
  12.     master pushes to master (up to date
复制代码
远程仓库的重命名与移除

你可以运行 git remote rename 来修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:
  1. $ git remote rename pb paul
  2. $ git remote
  3. origin
  4. paul
复制代码
分支简介

分支创建
创建一个 testing 分支, 你需要使用 git branch 命令:
  1. git branch testing
复制代码
  1. git log` 命令查看各个分支当前所指的对象。 提供这一功能的参数是 `--decorate
复制代码
切换到新创建的 testing 分支去:
  1. git checkout testing
复制代码
删除分支     带 -d 选项的 git branch 命令来删除分支:
  1. git branch -d hotfix
  2. Deleted branch hotfix (3a0874c).
复制代码
遇到冲突时的分支合并
  1. git merge iss53
复制代码
Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。 出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:
  1. <<<<<<< HEAD:index.html
  2. contact : email.support@github.com
  3. =======
  4. please contact us at support@github.com
  5. >>>>>>> iss53:index.html
复制代码
这表示 HEAD 所指示的版本(也就是你的 master 分支所在的位置,因为你在运行 merge 命令的时候已经检出到了这个分支)在这个区段的上半部分(======= 的上半部分),而 iss53 分支所指示的版本在 ======= 的下半部分。 为了解决冲突,你必须选择使用由 ======= 分割的两部分中的一个,或者你也可以自行合并这些内容。
远程分支

可以运行 git merge origin/serverfix 将这些工作合并到当前所在的分支。 如果想要在自己的 serverfix 分支上工作,可以将其建立在远程跟踪分支之上:
  1. $ git checkout -b serverfix origin/serverfix
  2. Branch serverfix set up to track remote branch serverfix from origin.
  3. Switched to a new branch 'serverfix'
复制代码
这会给你一个用于工作的本地分支,并且起点位于 origin/serverfix。
如果想要查看设置的所有跟踪分支,可以使用 git branch 的 -vv 选项。 这会将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有。
  1. $ git branch -vv
  2.   iss53     7e424c3 [origin/iss53: ahead 2] forgot the brackets
  3.   master    1ae2a45 [origin/master] deploying index fix
  4. * serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this should do it
  5.   testing   5ea463a trying something new
复制代码
删除远程分支

假设你已经通过远程分支做完所有的工作了——也就是说你和你的协作者已经完成了一个特性, 并且将其合并到了远程仓库的 master 分支(或任何其他稳定代码分支)。 可以运行带有 --delete 选项的 git push 命令来删除一个远程分支。 如果想要从服务器上删除 serverfix 分支,运行下面的命令:
  1. $ git push origin --delete serverfix
  2. To https://github.com/schacon/simplegit
  3. - [deleted]         serverfix
复制代码
变基
  1. $ git checkout experiment
  2. $ git rebase master
  3. First, rewinding head to replay your work on top of it...
  4. Applying: added staged command
复制代码
2.jpg
  1. $ git checkout master
  2. $ git merge experiment
复制代码
3.jpg


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册